 
 
//*********************************************************************
//*                  Microsoft Windows                               **
//*            Copyright(c) Microsoft Corp., 1996-1998               **
//*********************************************************************

midl_pragma warning(disable:2362)   // too many methods in the interface, requires Windows NT 4.0 SP3 or greater

#include <mshtmdid.h>
#include <mshtmcid.h>
#include <olectl.h>

import "ocidl.idl";

import "dimm.idl";

cpp_quote("#include <olectl.h>")
cpp_quote("EXTERN_C const GUID CMDSETID_Forms3;")
cpp_quote("EXTERN_C const GUID CLSID_MHTMLDocument;")
cpp_quote("EXTERN_C const GUID CLSID_HTMLApplication;")
cpp_quote("EXTERN_C const GUID CLSID_HTMLPluginDocument;")

cpp_quote("#define SID_SHTMLWindow IID_IHTMLWindow2")
cpp_quote("#define SID_SElementBehaviorFactory IID_IElementBehaviorFactory")

[
    lcid(0x0000),    // lcid =0; locale independent.
    helpstring("Microsoft HTML Object Library"),
    version(4.00),  //  WARNING: This version must match VERSION in dllreg.cxx.
    uuid(3050f1c5-98b5-11cf-bb82-00aa00bdce0b)
]

library MSHTML
{
    #ifndef _MAC
    importlib("stdole2.tlb");
    #else
    importlib("mstdole.tlb");
    #endif

    import "ocidl.idl";
    #include <olectl.h>

	// Forward definitions:
	interface IHTMLEventObj;
    enum BEHAVIOR_EVENT;
    enum BEHAVIOR_EVENT_FLAGS;
    enum BEHAVIOR_RENDER_INFO;
    enum BEHAVIOR_RELATION;
    interface IElementBehaviorSite;
    interface IElementBehavior;
    interface IElementBehaviorFactory;
    interface IElementBehaviorSiteOM;
    interface IElementBehaviorRender;
    interface IElementBehaviorSiteRender;


typedef enum _htmlDesignMode
{
    htmlDesignModeInherit = -2,
    htmlDesignModeOn = -1,
    htmlDesignModeOff = 0,
    htmlDesignMode_Max = 2147483647L
} htmlDesignMode;

typedef enum _htmlZOrder
{
    htmlZOrderFront = 0,
    htmlZOrderBack = 1,
    htmlZOrder_Max = 2147483647L
} htmlZOrder;

typedef enum _htmlClear
{
    htmlClearNotSet = 0,
    htmlClearAll = 1,
    htmlClearLeft = 2,
    htmlClearRight = 3,
    htmlClearBoth = 4,
    htmlClearNone = 5,
    htmlClear_Max = 2147483647L
} htmlClear;

typedef enum _htmlControlAlign
{
    htmlControlAlignNotSet = 0,
    htmlControlAlignLeft = 1,
    htmlControlAlignCenter = 2,
    htmlControlAlignRight = 3,
    htmlControlAlignTextTop = 4,
    htmlControlAlignAbsMiddle = 5,
    htmlControlAlignBaseline = 6,
    htmlControlAlignAbsBottom = 7,
    htmlControlAlignBottom = 8,
    htmlControlAlignMiddle = 9,
    htmlControlAlignTop = 10,
    htmlControlAlign_Max = 2147483647L
} htmlControlAlign;

typedef enum _htmlBlockAlign
{
    htmlBlockAlignNotSet = 0,
    htmlBlockAlignLeft = 1,
    htmlBlockAlignCenter = 2,
    htmlBlockAlignRight = 3,
    htmlBlockAlignJustify = 4,
    htmlBlockAlign_Max = 2147483647L
} htmlBlockAlign;

typedef enum _htmlReadyState
{
    htmlReadyStateuninitialized = 0,
    htmlReadyStateloading = 1,
    htmlReadyStateloaded = 2,
    htmlReadyStateinteractive = 3,
    htmlReadyStatecomplete = 4,
    htmlReadyState_Max = 2147483647L
} htmlReadyState;

typedef enum _htmlLoop
{
    htmlLoopLoopInfinite = -1,
    htmlLoop_Max = 2147483647L
} htmlLoop;

typedef enum _styleTextTransform
{
    styleTextTransformNotSet = 0,
    styleTextTransformCapitalize = 1,
    styleTextTransformLowercase = 2,
    styleTextTransformUppercase = 3,
    styleTextTransformNone = 4,
    styleTextTransform_Max = 2147483647L
} styleTextTransform;

typedef enum _styleDataRepeat
{
    styleDataRepeatNone = 0,
    styleDataRepeatInner = 1,
    styleDataRepeat_Max = 2147483647L
} styleDataRepeat;

typedef enum _styleOverflow
{
    styleOverflowNotSet = 0,
    styleOverflowAuto = 1,
    styleOverflowHidden = 2,
    styleOverflowVisible = 3,
    styleOverflowScroll = 4,
    styleOverflow_Max = 2147483647L
} styleOverflow;

typedef enum _styleTableLayout
{
    styleTableLayoutNotSet = 0,
    styleTableLayoutAuto = 1,
    styleTableLayoutFixed = 2,
    styleTableLayout_Max = 2147483647L
} styleTableLayout;

typedef enum _styleBorderCollapse
{
    styleBorderCollapseNotSet = 0,
    styleBorderCollapseSeparate = 1,
    styleBorderCollapseCollapse = 2,
    styleBorderCollapse_Max = 2147483647L
} styleBorderCollapse;

typedef enum _styleFontStyle
{
    styleFontStyleNotSet = 0,
    styleFontStyleItalic = 1,
    styleFontStyleOblique = 2,
    styleFontStyleNormal = 3,
    styleFontStyle_Max = 2147483647L
} styleFontStyle;

typedef enum _styleFontVariant
{
    styleFontVariantNotSet = 0,
    styleFontVariantSmallCaps = 1,
    styleFontVariantNormal = 2,
    styleFontVariant_Max = 2147483647L
} styleFontVariant;

typedef enum _styleBackgroundRepeat
{
    styleBackgroundRepeatRepeat = 0,
    styleBackgroundRepeatRepeatX = 1,
    styleBackgroundRepeatRepeatY = 2,
    styleBackgroundRepeatNoRepeat = 3,
    styleBackgroundRepeatNotSet = 4,
    styleBackgroundRepeat_Max = 2147483647L
} styleBackgroundRepeat;

typedef enum _styleBackgroundAttachment
{
    styleBackgroundAttachmentFixed = 0,
    styleBackgroundAttachmentScroll = 1,
    styleBackgroundAttachmentNotSet = 2,
    styleBackgroundAttachment_Max = 2147483647L
} styleBackgroundAttachment;

typedef enum _styleVerticalAlign
{
    styleVerticalAlignBaseline = 0,
    styleVerticalAlignSub = 1,
    styleVerticalAlignSuper = 2,
    styleVerticalAlignTop = 3,
    styleVerticalAlignTextTop = 4,
    styleVerticalAlignMiddle = 5,
    styleVerticalAlignBottom = 6,
    styleVerticalAlignTextBottom = 7,
    styleVerticalAlignPercentage = 8,
    styleVerticalAlignNotSet = 9,
    styleVerticalAlign_Max = 2147483647L
} styleVerticalAlign;

typedef enum _styleFontWeight
{
    styleFontWeightNotSet = 0,
    styleFontWeight100 = 1,
    styleFontWeight200 = 2,
    styleFontWeight300 = 3,
    styleFontWeight400 = 4,
    styleFontWeight500 = 5,
    styleFontWeight600 = 6,
    styleFontWeight700 = 7,
    styleFontWeight800 = 8,
    styleFontWeight900 = 9,
    styleFontWeightNormal = 10,
    styleFontWeightBold = 11,
    styleFontWeightBolder = 12,
    styleFontWeightLighter = 13,
    styleFontWeight_Max = 2147483647L
} styleFontWeight;

typedef enum _styleBackgroundPositionX
{
    styleBackgroundPositionXNotSet = 0,
    styleBackgroundPositionXLeft = 1,
    styleBackgroundPositionXCenter = 2,
    styleBackgroundPositionXRight = 3,
    styleBackgroundPositionX_Max = 2147483647L
} styleBackgroundPositionX;

typedef enum _styleBackgroundPositionY
{
    styleBackgroundPositionYNotSet = 0,
    styleBackgroundPositionYTop = 1,
    styleBackgroundPositionYCenter = 2,
    styleBackgroundPositionYBottom = 3,
    styleBackgroundPositionY_Max = 2147483647L
} styleBackgroundPositionY;

typedef enum _styleFontSize
{
    styleFontSizeXXSmall = 0,
    styleFontSizeXSmall = 1,
    styleFontSizeSmall = 2,
    styleFontSizeMedium = 3,
    styleFontSizeLarge = 4,
    styleFontSizeXLarge = 5,
    styleFontSizeXXLarge = 6,
    styleFontSizeSmaller = 7,
    styleFontSizeLarger = 8,
    styleFontSize_Max = 2147483647L
} styleFontSize;

typedef enum _styleAuto
{
    styleAutoAuto = 0,
    styleAuto_Max = 2147483647L
} styleAuto;

typedef enum _styleNormal
{
    styleNormalNormal = 0,
    styleNormal_Max = 2147483647L
} styleNormal;

typedef enum _styleBorderWidth
{
    styleBorderWidthThin = 0,
    styleBorderWidthMedium = 1,
    styleBorderWidthThick = 2,
    styleBorderWidth_Max = 2147483647L
} styleBorderWidth;

typedef enum _stylePosition
{
    stylePositionNotSet = 0,
    stylePositionstatic = 1,
    stylePositionrelative = 2,
    stylePositionabsolute = 3,
    stylePositionfixed = 4,
    stylePosition_Max = 2147483647L
} stylePosition;

typedef enum _styleBorderStyle
{
    styleBorderStyleNotSet = 0,
    styleBorderStyleDotted = 1,
    styleBorderStyleDashed = 2,
    styleBorderStyleSolid = 3,
    styleBorderStyleDouble = 4,
    styleBorderStyleGroove = 5,
    styleBorderStyleRidge = 6,
    styleBorderStyleInset = 7,
    styleBorderStyleOutset = 8,
    styleBorderStyleNone = 9,
    styleBorderStyle_Max = 2147483647L
} styleBorderStyle;

typedef enum _styleStyleFloat
{
    styleStyleFloatNotSet = 0,
    styleStyleFloatLeft = 1,
    styleStyleFloatRight = 2,
    styleStyleFloatNone = 3,
    styleStyleFloat_Max = 2147483647L
} styleStyleFloat;

typedef enum _styleDisplay
{
    styleDisplayNotSet = 0,
    styleDisplayBlock = 1,
    styleDisplayInline = 2,
    styleDisplayListItem = 3,
    styleDisplayNone = 4,
    styleDisplayTableHeaderGroup = 5,
    styleDisplayTableFooterGroup = 6,
    styleDisplay_Max = 2147483647L
} styleDisplay;

typedef enum _styleVisibility
{
    styleVisibilityNotSet = 0,
    styleVisibilityInherit = 1,
    styleVisibilityVisible = 2,
    styleVisibilityHidden = 3,
    styleVisibility_Max = 2147483647L
} styleVisibility;

typedef enum _styleListStyleType
{
    styleListStyleTypeNotSet = 0,
    styleListStyleTypeDisc = 1,
    styleListStyleTypeCircle = 2,
    styleListStyleTypeSquare = 3,
    styleListStyleTypeDecimal = 4,
    styleListStyleTypeLowerRoman = 5,
    styleListStyleTypeUpperRoman = 6,
    styleListStyleTypeLowerAlpha = 7,
    styleListStyleTypeUpperAlpha = 8,
    styleListStyleTypeNone = 9,
    styleListStyleType_Max = 2147483647L
} styleListStyleType;

typedef enum _styleListStylePosition
{
    styleListStylePositionNotSet = 0,
    styleListStylePositionInside = 1,
    styleListStylePositionOutSide = 2,
    styleListStylePosition_Max = 2147483647L
} styleListStylePosition;

typedef enum _styleWhiteSpace
{
    styleWhiteSpaceNotSet = 0,
    styleWhiteSpaceNormal = 1,
    styleWhiteSpacePre = 2,
    styleWhiteSpaceNowrap = 3,
    styleWhiteSpace_Max = 2147483647L
} styleWhiteSpace;

typedef enum _stylePageBreak
{
    stylePageBreakNotSet = 0,
    stylePageBreakAuto = 1,
    stylePageBreakAlways = 2,
    stylePageBreakLeft = 3,
    stylePageBreakRight = 4,
    stylePageBreak_Max = 2147483647L
} stylePageBreak;

typedef enum _styleCursor
{
    styleCursorAuto = 0,
    styleCursorCrosshair = 1,
    styleCursorDefault = 2,
    styleCursorHand = 3,
    styleCursorMove = 4,
    styleCursorE_resize = 5,
    styleCursorNe_resize = 6,
    styleCursorNw_resize = 7,
    styleCursorN_resize = 8,
    styleCursorSe_resize = 9,
    styleCursorSw_resize = 10,
    styleCursorS_resize = 11,
    styleCursorW_resize = 12,
    styleCursorText = 13,
    styleCursorWait = 14,
    styleCursorHelp = 15,
    styleCursorNotSet = 16,
    styleCursor_Max = 2147483647L
} styleCursor;

typedef enum _styleDir
{
    styleDirNotSet = 0,
    styleDirLeftToRight = 1,
    styleDirRightToLeft = 2,
    styleDirInherit = 3,
    styleDir_Max = 2147483647L
} styleDir;

typedef enum _styleBidi
{
    styleBidiNotSet = 0,
    styleBidiNormal = 1,
    styleBidiEmbed = 2,
    styleBidiOverride = 3,
    styleBidiInherit = 4,
    styleBidi_Max = 2147483647L
} styleBidi;

typedef enum _styleImeMode
{
    styleImeModeAuto = 0,
    styleImeModeActive = 1,
    styleImeModeInactive = 2,
    styleImeModeDisabled = 3,
    styleImeModeNotSet = 4,
    styleImeMode_Max = 2147483647L
} styleImeMode;

typedef enum _styleRubyAlign
{
    styleRubyAlignNotSet = 0,
    styleRubyAlignAuto = 1,
    styleRubyAlignLeft = 2,
    styleRubyAlignCenter = 3,
    styleRubyAlignRight = 4,
    styleRubyAlignDistributeLetter = 5,
    styleRubyAlignDistributeSpace = 6,
    styleRubyAlignLineEdge = 7,
    styleRubyAlign_Max = 2147483647L
} styleRubyAlign;

typedef enum _styleRubyPosition
{
    styleRubyPositionNotSet = 0,
    styleRubyPositionAbove = 1,
    styleRubyPositionInline = 2,
    styleRubyPosition_Max = 2147483647L
} styleRubyPosition;

typedef enum _styleRubyOverhang
{
    styleRubyOverhangNotSet = 0,
    styleRubyOverhangAuto = 1,
    styleRubyOverhangWhitespace = 2,
    styleRubyOverhangNone = 3,
    styleRubyOverhang_Max = 2147483647L
} styleRubyOverhang;

typedef enum _styleLayoutGridChar
{
    styleLayoutGridCharNotSet = 0,
    styleLayoutGridCharAuto = 1,
    styleLayoutGridCharNone = 2,
    styleLayoutGridChar_Max = 2147483647L
} styleLayoutGridChar;

typedef enum _styleLayoutGridLine
{
    styleLayoutGridLineNotSet = 0,
    styleLayoutGridLineAuto = 1,
    styleLayoutGridLineNone = 2,
    styleLayoutGridLine_Max = 2147483647L
} styleLayoutGridLine;

typedef enum _styleLayoutGridMode
{
    styleLayoutGridModeNotSet = 0,
    styleLayoutGridModeChar = 1,
    styleLayoutGridModeLine = 2,
    styleLayoutGridModeBoth = 3,
    styleLayoutGridModeNone = 4,
    styleLayoutGridMode_Max = 2147483647L
} styleLayoutGridMode;

typedef enum _styleLayoutGridType
{
    styleLayoutGridTypeNotSet = 0,
    styleLayoutGridTypeLoose = 1,
    styleLayoutGridTypeStrict = 2,
    styleLayoutGridTypeFixed = 3,
    styleLayoutGridType_Max = 2147483647L
} styleLayoutGridType;

typedef enum _styleLineBreak
{
    styleLineBreakNotSet = 0,
    styleLineBreakNormal = 1,
    styleLineBreakStrict = 2,
    styleLineBreak_Max = 2147483647L
} styleLineBreak;

typedef enum _styleWordBreak
{
    styleWordBreakNotSet = 0,
    styleWordBreakNormal = 1,
    styleWordBreakBreakAll = 2,
    styleWordBreakKeepAll = 3,
    styleWordBreak_Max = 2147483647L
} styleWordBreak;

typedef enum _styleTextJustify
{
    styleTextJustifyNotSet = 0,
    styleTextJustifyInterWord = 1,
    styleTextJustifyNewspaper = 2,
    styleTextJustifyDistribute = 3,
    styleTextJustifyDistributeAllLines = 4,
    styleTextJustifyInterIdeograph = 5,
    styleTextJustifyAuto = 6,
    styleTextJustify_Max = 2147483647L
} styleTextJustify;

typedef enum _styleTextJustifyTrim
{
    styleTextJustifyTrimNotSet = 0,
    styleTextJustifyTrimNone = 1,
    styleTextJustifyTrimPunctuation = 2,
    styleTextJustifyTrimPunctAndKana = 3,
    styleTextJustifyTrim_Max = 2147483647L
} styleTextJustifyTrim;

typedef enum _styleAccelerator
{
    styleAcceleratorFalse = 0,
    styleAcceleratorTrue = 1,
    styleAccelerator_Max = 2147483647L
} styleAccelerator;

[
    odl,
    oleautomation,
    dual,
    uuid(3050f25e-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLStyle : IDispatch
{
    [propput, id(DISPID_IHTMLSTYLE_FONTFAMILY), displaybind, bindable] HRESULT fontFamily([in] BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_FONTFAMILY), displaybind, bindable] HRESULT fontFamily([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLSTYLE_FONTSTYLE), displaybind, bindable] HRESULT fontStyle([in] BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_FONTSTYLE), displaybind, bindable] HRESULT fontStyle([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLSTYLE_FONTVARIANT), displaybind, bindable] HRESULT fontVariant([in] BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_FONTVARIANT), displaybind, bindable] HRESULT fontVariant([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLSTYLE_FONTWEIGHT), displaybind, bindable] HRESULT fontWeight([in] BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_FONTWEIGHT), displaybind, bindable] HRESULT fontWeight([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLSTYLE_FONTSIZE), displaybind, bindable] HRESULT fontSize([in] VARIANT v);
    [propget, id(DISPID_IHTMLSTYLE_FONTSIZE), displaybind, bindable] HRESULT fontSize([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLSTYLE_FONT), displaybind, bindable, nonbrowsable] HRESULT font([in] BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_FONT), displaybind, bindable, nonbrowsable] HRESULT font([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLSTYLE_COLOR), displaybind, bindable] HRESULT color([in] VARIANT v);
    [propget, id(DISPID_IHTMLSTYLE_COLOR), displaybind, bindable] HRESULT color([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLSTYLE_BACKGROUND), displaybind, bindable, nonbrowsable] HRESULT background([in] BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_BACKGROUND), displaybind, bindable, nonbrowsable] HRESULT background([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLSTYLE_BACKGROUNDCOLOR), displaybind, bindable] HRESULT backgroundColor([in] VARIANT v);
    [propget, id(DISPID_IHTMLSTYLE_BACKGROUNDCOLOR), displaybind, bindable] HRESULT backgroundColor([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLSTYLE_BACKGROUNDIMAGE), displaybind, bindable] HRESULT backgroundImage([in] BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_BACKGROUNDIMAGE), displaybind, bindable] HRESULT backgroundImage([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLSTYLE_BACKGROUNDREPEAT), displaybind, bindable] HRESULT backgroundRepeat([in] BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_BACKGROUNDREPEAT), displaybind, bindable] HRESULT backgroundRepeat([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLSTYLE_BACKGROUNDATTACHMENT), displaybind, bindable] HRESULT backgroundAttachment([in] BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_BACKGROUNDATTACHMENT), displaybind, bindable] HRESULT backgroundAttachment([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLSTYLE_BACKGROUNDPOSITION), displaybind, bindable, nonbrowsable] HRESULT backgroundPosition([in] BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_BACKGROUNDPOSITION), displaybind, bindable, nonbrowsable] HRESULT backgroundPosition([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLSTYLE_BACKGROUNDPOSITIONX), displaybind, bindable] HRESULT backgroundPositionX([in] VARIANT v);
    [propget, id(DISPID_IHTMLSTYLE_BACKGROUNDPOSITIONX), displaybind, bindable] HRESULT backgroundPositionX([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLSTYLE_BACKGROUNDPOSITIONY), displaybind, bindable] HRESULT backgroundPositionY([in] VARIANT v);
    [propget, id(DISPID_IHTMLSTYLE_BACKGROUNDPOSITIONY), displaybind, bindable] HRESULT backgroundPositionY([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLSTYLE_WORDSPACING), displaybind, bindable] HRESULT wordSpacing([in] VARIANT v);
    [propget, id(DISPID_IHTMLSTYLE_WORDSPACING), displaybind, bindable] HRESULT wordSpacing([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLSTYLE_LETTERSPACING), displaybind, bindable] HRESULT letterSpacing([in] VARIANT v);
    [propget, id(DISPID_IHTMLSTYLE_LETTERSPACING), displaybind, bindable] HRESULT letterSpacing([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLSTYLE_TEXTDECORATION), displaybind, bindable] HRESULT textDecoration([in] BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_TEXTDECORATION), displaybind, bindable] HRESULT textDecoration([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLSTYLE_TEXTDECORATIONNONE), displaybind, bindable] HRESULT textDecorationNone([in] VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLSTYLE_TEXTDECORATIONNONE), displaybind, bindable] HRESULT textDecorationNone([retval, out] VARIANT_BOOL * p);
    [propput, id(DISPID_IHTMLSTYLE_TEXTDECORATIONUNDERLINE), displaybind, bindable] HRESULT textDecorationUnderline([in] VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLSTYLE_TEXTDECORATIONUNDERLINE), displaybind, bindable] HRESULT textDecorationUnderline([retval, out] VARIANT_BOOL * p);
    [propput, id(DISPID_IHTMLSTYLE_TEXTDECORATIONOVERLINE), displaybind, bindable] HRESULT textDecorationOverline([in] VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLSTYLE_TEXTDECORATIONOVERLINE), displaybind, bindable] HRESULT textDecorationOverline([retval, out] VARIANT_BOOL * p);
    [propput, id(DISPID_IHTMLSTYLE_TEXTDECORATIONLINETHROUGH), displaybind, bindable] HRESULT textDecorationLineThrough([in] VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLSTYLE_TEXTDECORATIONLINETHROUGH), displaybind, bindable] HRESULT textDecorationLineThrough([retval, out] VARIANT_BOOL * p);
    [propput, id(DISPID_IHTMLSTYLE_TEXTDECORATIONBLINK), displaybind, bindable] HRESULT textDecorationBlink([in] VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLSTYLE_TEXTDECORATIONBLINK), displaybind, bindable] HRESULT textDecorationBlink([retval, out] VARIANT_BOOL * p);
    [propput, id(DISPID_IHTMLSTYLE_VERTICALALIGN), displaybind, bindable] HRESULT verticalAlign([in] VARIANT v);
    [propget, id(DISPID_IHTMLSTYLE_VERTICALALIGN), displaybind, bindable] HRESULT verticalAlign([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLSTYLE_TEXTTRANSFORM), displaybind, bindable] HRESULT textTransform([in] BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_TEXTTRANSFORM), displaybind, bindable] HRESULT textTransform([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLSTYLE_TEXTALIGN), displaybind, bindable] HRESULT textAlign([in] BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_TEXTALIGN), displaybind, bindable] HRESULT textAlign([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLSTYLE_TEXTINDENT), displaybind, bindable] HRESULT textIndent([in] VARIANT v);
    [propget, id(DISPID_IHTMLSTYLE_TEXTINDENT), displaybind, bindable] HRESULT textIndent([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLSTYLE_LINEHEIGHT), displaybind, bindable] HRESULT lineHeight([in] VARIANT v);
    [propget, id(DISPID_IHTMLSTYLE_LINEHEIGHT), displaybind, bindable] HRESULT lineHeight([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLSTYLE_MARGINTOP), displaybind, bindable] HRESULT marginTop([in] VARIANT v);
    [propget, id(DISPID_IHTMLSTYLE_MARGINTOP), displaybind, bindable] HRESULT marginTop([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLSTYLE_MARGINRIGHT), displaybind, bindable] HRESULT marginRight([in] VARIANT v);
    [propget, id(DISPID_IHTMLSTYLE_MARGINRIGHT), displaybind, bindable] HRESULT marginRight([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLSTYLE_MARGINBOTTOM), displaybind, bindable] HRESULT marginBottom([in] VARIANT v);
    [propget, id(DISPID_IHTMLSTYLE_MARGINBOTTOM), displaybind, bindable] HRESULT marginBottom([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLSTYLE_MARGINLEFT), displaybind, bindable] HRESULT marginLeft([in] VARIANT v);
    [propget, id(DISPID_IHTMLSTYLE_MARGINLEFT), displaybind, bindable] HRESULT marginLeft([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLSTYLE_MARGIN), displaybind, bindable, nonbrowsable] HRESULT margin([in] BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_MARGIN), displaybind, bindable, nonbrowsable] HRESULT margin([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLSTYLE_PADDINGTOP), displaybind, bindable] HRESULT paddingTop([in] VARIANT v);
    [propget, id(DISPID_IHTMLSTYLE_PADDINGTOP), displaybind, bindable] HRESULT paddingTop([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLSTYLE_PADDINGRIGHT), displaybind, bindable] HRESULT paddingRight([in] VARIANT v);
    [propget, id(DISPID_IHTMLSTYLE_PADDINGRIGHT), displaybind, bindable] HRESULT paddingRight([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLSTYLE_PADDINGBOTTOM), displaybind, bindable] HRESULT paddingBottom([in] VARIANT v);
    [propget, id(DISPID_IHTMLSTYLE_PADDINGBOTTOM), displaybind, bindable] HRESULT paddingBottom([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLSTYLE_PADDINGLEFT), displaybind, bindable] HRESULT paddingLeft([in] VARIANT v);
    [propget, id(DISPID_IHTMLSTYLE_PADDINGLEFT), displaybind, bindable] HRESULT paddingLeft([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLSTYLE_PADDING), displaybind, bindable, nonbrowsable] HRESULT padding([in] BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_PADDING), displaybind, bindable, nonbrowsable] HRESULT padding([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLSTYLE_BORDER), displaybind, bindable, nonbrowsable] HRESULT border([in] BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_BORDER), displaybind, bindable, nonbrowsable] HRESULT border([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLSTYLE_BORDERTOP), displaybind, bindable] HRESULT borderTop([in] BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_BORDERTOP), displaybind, bindable] HRESULT borderTop([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLSTYLE_BORDERRIGHT), displaybind, bindable] HRESULT borderRight([in] BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_BORDERRIGHT), displaybind, bindable] HRESULT borderRight([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLSTYLE_BORDERBOTTOM), displaybind, bindable] HRESULT borderBottom([in] BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_BORDERBOTTOM), displaybind, bindable] HRESULT borderBottom([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLSTYLE_BORDERLEFT), displaybind, bindable] HRESULT borderLeft([in] BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_BORDERLEFT), displaybind, bindable] HRESULT borderLeft([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLSTYLE_BORDERCOLOR), displaybind, bindable] HRESULT borderColor([in] BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_BORDERCOLOR), displaybind, bindable] HRESULT borderColor([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLSTYLE_BORDERTOPCOLOR), displaybind, bindable] HRESULT borderTopColor([in] VARIANT v);
    [propget, id(DISPID_IHTMLSTYLE_BORDERTOPCOLOR), displaybind, bindable] HRESULT borderTopColor([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLSTYLE_BORDERRIGHTCOLOR), displaybind, bindable] HRESULT borderRightColor([in] VARIANT v);
    [propget, id(DISPID_IHTMLSTYLE_BORDERRIGHTCOLOR), displaybind, bindable] HRESULT borderRightColor([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLSTYLE_BORDERBOTTOMCOLOR), displaybind, bindable] HRESULT borderBottomColor([in] VARIANT v);
    [propget, id(DISPID_IHTMLSTYLE_BORDERBOTTOMCOLOR), displaybind, bindable] HRESULT borderBottomColor([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLSTYLE_BORDERLEFTCOLOR), displaybind, bindable] HRESULT borderLeftColor([in] VARIANT v);
    [propget, id(DISPID_IHTMLSTYLE_BORDERLEFTCOLOR), displaybind, bindable] HRESULT borderLeftColor([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLSTYLE_BORDERWIDTH), displaybind, bindable] HRESULT borderWidth([in] BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_BORDERWIDTH), displaybind, bindable] HRESULT borderWidth([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLSTYLE_BORDERTOPWIDTH), displaybind, bindable] HRESULT borderTopWidth([in] VARIANT v);
    [propget, id(DISPID_IHTMLSTYLE_BORDERTOPWIDTH), displaybind, bindable] HRESULT borderTopWidth([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLSTYLE_BORDERRIGHTWIDTH), displaybind, bindable] HRESULT borderRightWidth([in] VARIANT v);
    [propget, id(DISPID_IHTMLSTYLE_BORDERRIGHTWIDTH), displaybind, bindable] HRESULT borderRightWidth([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLSTYLE_BORDERBOTTOMWIDTH), displaybind, bindable] HRESULT borderBottomWidth([in] VARIANT v);
    [propget, id(DISPID_IHTMLSTYLE_BORDERBOTTOMWIDTH), displaybind, bindable] HRESULT borderBottomWidth([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLSTYLE_BORDERLEFTWIDTH), displaybind, bindable] HRESULT borderLeftWidth([in] VARIANT v);
    [propget, id(DISPID_IHTMLSTYLE_BORDERLEFTWIDTH), displaybind, bindable] HRESULT borderLeftWidth([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLSTYLE_BORDERSTYLE), displaybind, bindable] HRESULT borderStyle([in] BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_BORDERSTYLE), displaybind, bindable] HRESULT borderStyle([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLSTYLE_BORDERTOPSTYLE), displaybind, bindable] HRESULT borderTopStyle([in] BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_BORDERTOPSTYLE), displaybind, bindable] HRESULT borderTopStyle([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLSTYLE_BORDERRIGHTSTYLE), displaybind, bindable] HRESULT borderRightStyle([in] BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_BORDERRIGHTSTYLE), displaybind, bindable] HRESULT borderRightStyle([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLSTYLE_BORDERBOTTOMSTYLE), displaybind, bindable] HRESULT borderBottomStyle([in] BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_BORDERBOTTOMSTYLE), displaybind, bindable] HRESULT borderBottomStyle([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLSTYLE_BORDERLEFTSTYLE), displaybind, bindable] HRESULT borderLeftStyle([in] BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_BORDERLEFTSTYLE), displaybind, bindable] HRESULT borderLeftStyle([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLSTYLE_WIDTH), displaybind, bindable] HRESULT width([in] VARIANT v);
    [propget, id(DISPID_IHTMLSTYLE_WIDTH), displaybind, bindable] HRESULT width([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLSTYLE_HEIGHT), displaybind, bindable] HRESULT height([in] VARIANT v);
    [propget, id(DISPID_IHTMLSTYLE_HEIGHT), displaybind, bindable] HRESULT height([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLSTYLE_STYLEFLOAT), displaybind, bindable] HRESULT styleFloat([in] BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_STYLEFLOAT), displaybind, bindable] HRESULT styleFloat([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLSTYLE_CLEAR), displaybind, bindable] HRESULT clear([in] BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_CLEAR), displaybind, bindable] HRESULT clear([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLSTYLE_DISPLAY), displaybind, bindable] HRESULT display([in] BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_DISPLAY), displaybind, bindable] HRESULT display([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLSTYLE_VISIBILITY), displaybind, bindable] HRESULT visibility([in] BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_VISIBILITY), displaybind, bindable] HRESULT visibility([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLSTYLE_LISTSTYLETYPE), displaybind, bindable] HRESULT listStyleType([in] BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_LISTSTYLETYPE), displaybind, bindable] HRESULT listStyleType([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLSTYLE_LISTSTYLEPOSITION), displaybind, bindable] HRESULT listStylePosition([in] BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_LISTSTYLEPOSITION), displaybind, bindable] HRESULT listStylePosition([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLSTYLE_LISTSTYLEIMAGE), displaybind, bindable] HRESULT listStyleImage([in] BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_LISTSTYLEIMAGE), displaybind, bindable] HRESULT listStyleImage([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLSTYLE_LISTSTYLE), displaybind, bindable, nonbrowsable] HRESULT listStyle([in] BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_LISTSTYLE), displaybind, bindable, nonbrowsable] HRESULT listStyle([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLSTYLE_WHITESPACE), displaybind, bindable] HRESULT whiteSpace([in] BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_WHITESPACE), displaybind, bindable] HRESULT whiteSpace([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLSTYLE_TOP), displaybind, bindable] HRESULT top([in] VARIANT v);
    [propget, id(DISPID_IHTMLSTYLE_TOP), displaybind, bindable] HRESULT top([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLSTYLE_LEFT), displaybind, bindable] HRESULT left([in] VARIANT v);
    [propget, id(DISPID_IHTMLSTYLE_LEFT), displaybind, bindable] HRESULT left([retval, out] VARIANT * p);
    [propget, id(DISPID_IHTMLSTYLE_POSITION), displaybind, bindable] HRESULT position([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLSTYLE_ZINDEX), displaybind, bindable] HRESULT zIndex([in] VARIANT v);
    [propget, id(DISPID_IHTMLSTYLE_ZINDEX), displaybind, bindable] HRESULT zIndex([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLSTYLE_OVERFLOW), displaybind, bindable] HRESULT overflow([in] BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_OVERFLOW), displaybind, bindable] HRESULT overflow([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLSTYLE_PAGEBREAKBEFORE), displaybind, bindable] HRESULT pageBreakBefore([in] BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_PAGEBREAKBEFORE), displaybind, bindable] HRESULT pageBreakBefore([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLSTYLE_PAGEBREAKAFTER), displaybind, bindable] HRESULT pageBreakAfter([in] BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_PAGEBREAKAFTER), displaybind, bindable] HRESULT pageBreakAfter([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLSTYLE_CSSTEXT), displaybind, bindable, nonbrowsable] HRESULT cssText([in] BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_CSSTEXT), displaybind, bindable, nonbrowsable] HRESULT cssText([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLSTYLE_PIXELTOP), displaybind, bindable, hidden] HRESULT pixelTop([in] long v);
    [propget, id(DISPID_IHTMLSTYLE_PIXELTOP), displaybind, bindable, hidden] HRESULT pixelTop([retval, out] long * p);
    [propput, id(DISPID_IHTMLSTYLE_PIXELLEFT), displaybind, bindable, hidden] HRESULT pixelLeft([in] long v);
    [propget, id(DISPID_IHTMLSTYLE_PIXELLEFT), displaybind, bindable, hidden] HRESULT pixelLeft([retval, out] long * p);
    [propput, id(DISPID_IHTMLSTYLE_PIXELWIDTH), displaybind, bindable, hidden] HRESULT pixelWidth([in] long v);
    [propget, id(DISPID_IHTMLSTYLE_PIXELWIDTH), displaybind, bindable, hidden] HRESULT pixelWidth([retval, out] long * p);
    [propput, id(DISPID_IHTMLSTYLE_PIXELHEIGHT), displaybind, bindable, hidden] HRESULT pixelHeight([in] long v);
    [propget, id(DISPID_IHTMLSTYLE_PIXELHEIGHT), displaybind, bindable, hidden] HRESULT pixelHeight([retval, out] long * p);
    [propput, id(DISPID_IHTMLSTYLE_POSTOP), displaybind, bindable] HRESULT posTop([in] float v);
    [propget, id(DISPID_IHTMLSTYLE_POSTOP), displaybind, bindable] HRESULT posTop([retval, out] float * p);
    [propput, id(DISPID_IHTMLSTYLE_POSLEFT), displaybind, bindable] HRESULT posLeft([in] float v);
    [propget, id(DISPID_IHTMLSTYLE_POSLEFT), displaybind, bindable] HRESULT posLeft([retval, out] float * p);
    [propput, id(DISPID_IHTMLSTYLE_POSWIDTH), displaybind, bindable] HRESULT posWidth([in] float v);
    [propget, id(DISPID_IHTMLSTYLE_POSWIDTH), displaybind, bindable] HRESULT posWidth([retval, out] float * p);
    [propput, id(DISPID_IHTMLSTYLE_POSHEIGHT), displaybind, bindable] HRESULT posHeight([in] float v);
    [propget, id(DISPID_IHTMLSTYLE_POSHEIGHT), displaybind, bindable] HRESULT posHeight([retval, out] float * p);
    [propput, id(DISPID_IHTMLSTYLE_CURSOR), displaybind, bindable] HRESULT cursor([in] BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_CURSOR), displaybind, bindable] HRESULT cursor([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLSTYLE_CLIP), displaybind, bindable] HRESULT clip([in] BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_CLIP), displaybind, bindable] HRESULT clip([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLSTYLE_FILTER), displaybind, bindable] HRESULT filter([in] BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_FILTER), displaybind, bindable] HRESULT filter([retval, out] BSTR * p);
    [id(DISPID_IHTMLSTYLE_SETATTRIBUTE)] HRESULT setAttribute([in] BSTR strAttributeName,[in] VARIANT AttributeValue,[defaultvalue(1), in] LONG lFlags);
    [id(DISPID_IHTMLSTYLE_GETATTRIBUTE)] HRESULT getAttribute([in] BSTR strAttributeName,[defaultvalue(0), in] LONG lFlags,[retval, out] VARIANT* AttributeValue);
    [id(DISPID_IHTMLSTYLE_REMOVEATTRIBUTE)] HRESULT removeAttribute([in] BSTR strAttributeName,[defaultvalue(1), in] LONG lFlags,[retval, out] VARIANT_BOOL* pfSuccess);
    [id(DISPID_IHTMLSTYLE_TOSTRING)] HRESULT toString([retval, out] BSTR* String);
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f4a2-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLStyle2 : IDispatch
{
    [propput, id(DISPID_IHTMLSTYLE2_TABLELAYOUT), displaybind, bindable] HRESULT tableLayout([in] BSTR v);
    [propget, id(DISPID_IHTMLSTYLE2_TABLELAYOUT), displaybind, bindable] HRESULT tableLayout([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLSTYLE2_BORDERCOLLAPSE), displaybind, bindable] HRESULT borderCollapse([in] BSTR v);
    [propget, id(DISPID_IHTMLSTYLE2_BORDERCOLLAPSE), displaybind, bindable] HRESULT borderCollapse([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLSTYLE2_DIRECTION), displaybind, bindable] HRESULT direction([in] BSTR v);
    [propget, id(DISPID_IHTMLSTYLE2_DIRECTION), displaybind, bindable] HRESULT direction([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLSTYLE2_BEHAVIOR), displaybind, bindable] HRESULT behavior([in] BSTR v);
    [propget, id(DISPID_IHTMLSTYLE2_BEHAVIOR), displaybind, bindable] HRESULT behavior([retval, out] BSTR * p);
    [id(DISPID_IHTMLSTYLE2_SETEXPRESSION)] HRESULT setExpression([in] BSTR propname,[in] BSTR expression,[defaultvalue(""), in] BSTR language);
    [id(DISPID_IHTMLSTYLE2_GETEXPRESSION)] HRESULT getExpression([in] BSTR propname,[retval, out] VARIANT* expression);
    [id(DISPID_IHTMLSTYLE2_REMOVEEXPRESSION)] HRESULT removeExpression([in] BSTR propname,[retval, out] VARIANT_BOOL* pfSuccess);
    [propput, id(DISPID_IHTMLSTYLE2_POSITION), displaybind, bindable] HRESULT position([in] BSTR v);
    [propget, id(DISPID_IHTMLSTYLE2_POSITION), displaybind, bindable] HRESULT position([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLSTYLE2_UNICODEBIDI), displaybind, bindable] HRESULT unicodeBidi([in] BSTR v);
    [propget, id(DISPID_IHTMLSTYLE2_UNICODEBIDI), displaybind, bindable] HRESULT unicodeBidi([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLSTYLE2_BOTTOM), displaybind, bindable] HRESULT bottom([in] VARIANT v);
    [propget, id(DISPID_IHTMLSTYLE2_BOTTOM), displaybind, bindable] HRESULT bottom([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLSTYLE2_RIGHT), displaybind, bindable] HRESULT right([in] VARIANT v);
    [propget, id(DISPID_IHTMLSTYLE2_RIGHT), displaybind, bindable] HRESULT right([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLSTYLE2_PIXELBOTTOM), displaybind, bindable, hidden] HRESULT pixelBottom([in] long v);
    [propget, id(DISPID_IHTMLSTYLE2_PIXELBOTTOM), displaybind, bindable, hidden] HRESULT pixelBottom([retval, out] long * p);
    [propput, id(DISPID_IHTMLSTYLE2_PIXELRIGHT), displaybind, bindable, hidden] HRESULT pixelRight([in] long v);
    [propget, id(DISPID_IHTMLSTYLE2_PIXELRIGHT), displaybind, bindable, hidden] HRESULT pixelRight([retval, out] long * p);
    [propput, id(DISPID_IHTMLSTYLE2_POSBOTTOM), displaybind, bindable] HRESULT posBottom([in] float v);
    [propget, id(DISPID_IHTMLSTYLE2_POSBOTTOM), displaybind, bindable] HRESULT posBottom([retval, out] float * p);
    [propput, id(DISPID_IHTMLSTYLE2_POSRIGHT), displaybind, bindable] HRESULT posRight([in] float v);
    [propget, id(DISPID_IHTMLSTYLE2_POSRIGHT), displaybind, bindable] HRESULT posRight([retval, out] float * p);
    [propput, id(DISPID_IHTMLSTYLE2_IMEMODE), displaybind, bindable] HRESULT imeMode([in] BSTR v);
    [propget, id(DISPID_IHTMLSTYLE2_IMEMODE), displaybind, bindable] HRESULT imeMode([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLSTYLE2_RUBYALIGN), displaybind, bindable] HRESULT rubyAlign([in] BSTR v);
    [propget, id(DISPID_IHTMLSTYLE2_RUBYALIGN), displaybind, bindable] HRESULT rubyAlign([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLSTYLE2_RUBYPOSITION), displaybind, bindable] HRESULT rubyPosition([in] BSTR v);
    [propget, id(DISPID_IHTMLSTYLE2_RUBYPOSITION), displaybind, bindable] HRESULT rubyPosition([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLSTYLE2_RUBYOVERHANG), displaybind, bindable] HRESULT rubyOverhang([in] BSTR v);
    [propget, id(DISPID_IHTMLSTYLE2_RUBYOVERHANG), displaybind, bindable] HRESULT rubyOverhang([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLSTYLE2_LAYOUTGRIDCHAR), displaybind, bindable] HRESULT layoutGridChar([in] VARIANT v);
    [propget, id(DISPID_IHTMLSTYLE2_LAYOUTGRIDCHAR), displaybind, bindable] HRESULT layoutGridChar([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLSTYLE2_LAYOUTGRIDLINE), displaybind, bindable] HRESULT layoutGridLine([in] VARIANT v);
    [propget, id(DISPID_IHTMLSTYLE2_LAYOUTGRIDLINE), displaybind, bindable] HRESULT layoutGridLine([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLSTYLE2_LAYOUTGRIDMODE), displaybind, bindable] HRESULT layoutGridMode([in] BSTR v);
    [propget, id(DISPID_IHTMLSTYLE2_LAYOUTGRIDMODE), displaybind, bindable] HRESULT layoutGridMode([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLSTYLE2_LAYOUTGRIDTYPE), displaybind, bindable] HRESULT layoutGridType([in] BSTR v);
    [propget, id(DISPID_IHTMLSTYLE2_LAYOUTGRIDTYPE), displaybind, bindable] HRESULT layoutGridType([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLSTYLE2_LAYOUTGRID), displaybind, bindable, nonbrowsable] HRESULT layoutGrid([in] BSTR v);
    [propget, id(DISPID_IHTMLSTYLE2_LAYOUTGRID), displaybind, bindable, nonbrowsable] HRESULT layoutGrid([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLSTYLE2_WORDBREAK), displaybind, bindable] HRESULT wordBreak([in] BSTR v);
    [propget, id(DISPID_IHTMLSTYLE2_WORDBREAK), displaybind, bindable] HRESULT wordBreak([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLSTYLE2_LINEBREAK), displaybind, bindable] HRESULT lineBreak([in] BSTR v);
    [propget, id(DISPID_IHTMLSTYLE2_LINEBREAK), displaybind, bindable] HRESULT lineBreak([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLSTYLE2_TEXTJUSTIFY), displaybind, bindable] HRESULT textJustify([in] BSTR v);
    [propget, id(DISPID_IHTMLSTYLE2_TEXTJUSTIFY), displaybind, bindable] HRESULT textJustify([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLSTYLE2_TEXTJUSTIFYTRIM), displaybind, bindable] HRESULT textJustifyTrim([in] BSTR v);
    [propget, id(DISPID_IHTMLSTYLE2_TEXTJUSTIFYTRIM), displaybind, bindable] HRESULT textJustifyTrim([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLSTYLE2_TEXTKASHIDA), displaybind, bindable] HRESULT textKashida([in] VARIANT v);
    [propget, id(DISPID_IHTMLSTYLE2_TEXTKASHIDA), displaybind, bindable] HRESULT textKashida([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLSTYLE2_TEXTAUTOSPACE), displaybind, bindable] HRESULT textAutospace([in] BSTR v);
    [propget, id(DISPID_IHTMLSTYLE2_TEXTAUTOSPACE), displaybind, bindable] HRESULT textAutospace([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLSTYLE2_OVERFLOWX), displaybind, bindable] HRESULT overflowX([in] BSTR v);
    [propget, id(DISPID_IHTMLSTYLE2_OVERFLOWX), displaybind, bindable] HRESULT overflowX([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLSTYLE2_OVERFLOWY), displaybind, bindable] HRESULT overflowY([in] BSTR v);
    [propget, id(DISPID_IHTMLSTYLE2_OVERFLOWY), displaybind, bindable] HRESULT overflowY([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLSTYLE2_ACCELERATOR), displaybind, bindable] HRESULT accelerator([in] BSTR v);
    [propget, id(DISPID_IHTMLSTYLE2_ACCELERATOR), displaybind, bindable] HRESULT accelerator([retval, out] BSTR * p);
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f3cf-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLRuleStyle : IDispatch
{
    [propput, id(DISPID_IHTMLRULESTYLE_FONTFAMILY), displaybind, bindable] HRESULT fontFamily([in] BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_FONTFAMILY), displaybind, bindable] HRESULT fontFamily([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLRULESTYLE_FONTSTYLE), displaybind, bindable] HRESULT fontStyle([in] BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_FONTSTYLE), displaybind, bindable] HRESULT fontStyle([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLRULESTYLE_FONTVARIANT), displaybind, bindable] HRESULT fontVariant([in] BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_FONTVARIANT), displaybind, bindable] HRESULT fontVariant([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLRULESTYLE_FONTWEIGHT), displaybind, bindable] HRESULT fontWeight([in] BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_FONTWEIGHT), displaybind, bindable] HRESULT fontWeight([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLRULESTYLE_FONTSIZE), displaybind, bindable] HRESULT fontSize([in] VARIANT v);
    [propget, id(DISPID_IHTMLRULESTYLE_FONTSIZE), displaybind, bindable] HRESULT fontSize([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLRULESTYLE_FONT), displaybind, bindable, nonbrowsable] HRESULT font([in] BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_FONT), displaybind, bindable, nonbrowsable] HRESULT font([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLRULESTYLE_COLOR), displaybind, bindable] HRESULT color([in] VARIANT v);
    [propget, id(DISPID_IHTMLRULESTYLE_COLOR), displaybind, bindable] HRESULT color([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLRULESTYLE_BACKGROUND), displaybind, bindable, nonbrowsable] HRESULT background([in] BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_BACKGROUND), displaybind, bindable, nonbrowsable] HRESULT background([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLRULESTYLE_BACKGROUNDCOLOR), displaybind, bindable] HRESULT backgroundColor([in] VARIANT v);
    [propget, id(DISPID_IHTMLRULESTYLE_BACKGROUNDCOLOR), displaybind, bindable] HRESULT backgroundColor([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLRULESTYLE_BACKGROUNDIMAGE), displaybind, bindable] HRESULT backgroundImage([in] BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_BACKGROUNDIMAGE), displaybind, bindable] HRESULT backgroundImage([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLRULESTYLE_BACKGROUNDREPEAT), displaybind, bindable] HRESULT backgroundRepeat([in] BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_BACKGROUNDREPEAT), displaybind, bindable] HRESULT backgroundRepeat([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLRULESTYLE_BACKGROUNDATTACHMENT), displaybind, bindable] HRESULT backgroundAttachment([in] BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_BACKGROUNDATTACHMENT), displaybind, bindable] HRESULT backgroundAttachment([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLRULESTYLE_BACKGROUNDPOSITION), displaybind, bindable, nonbrowsable] HRESULT backgroundPosition([in] BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_BACKGROUNDPOSITION), displaybind, bindable, nonbrowsable] HRESULT backgroundPosition([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLRULESTYLE_BACKGROUNDPOSITIONX), displaybind, bindable] HRESULT backgroundPositionX([in] VARIANT v);
    [propget, id(DISPID_IHTMLRULESTYLE_BACKGROUNDPOSITIONX), displaybind, bindable] HRESULT backgroundPositionX([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLRULESTYLE_BACKGROUNDPOSITIONY), displaybind, bindable] HRESULT backgroundPositionY([in] VARIANT v);
    [propget, id(DISPID_IHTMLRULESTYLE_BACKGROUNDPOSITIONY), displaybind, bindable] HRESULT backgroundPositionY([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLRULESTYLE_WORDSPACING), displaybind, bindable] HRESULT wordSpacing([in] VARIANT v);
    [propget, id(DISPID_IHTMLRULESTYLE_WORDSPACING), displaybind, bindable] HRESULT wordSpacing([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLRULESTYLE_LETTERSPACING), displaybind, bindable] HRESULT letterSpacing([in] VARIANT v);
    [propget, id(DISPID_IHTMLRULESTYLE_LETTERSPACING), displaybind, bindable] HRESULT letterSpacing([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLRULESTYLE_TEXTDECORATION), displaybind, bindable] HRESULT textDecoration([in] BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_TEXTDECORATION), displaybind, bindable] HRESULT textDecoration([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLRULESTYLE_TEXTDECORATIONNONE), displaybind, bindable] HRESULT textDecorationNone([in] VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLRULESTYLE_TEXTDECORATIONNONE), displaybind, bindable] HRESULT textDecorationNone([retval, out] VARIANT_BOOL * p);
    [propput, id(DISPID_IHTMLRULESTYLE_TEXTDECORATIONUNDERLINE), displaybind, bindable] HRESULT textDecorationUnderline([in] VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLRULESTYLE_TEXTDECORATIONUNDERLINE), displaybind, bindable] HRESULT textDecorationUnderline([retval, out] VARIANT_BOOL * p);
    [propput, id(DISPID_IHTMLRULESTYLE_TEXTDECORATIONOVERLINE), displaybind, bindable] HRESULT textDecorationOverline([in] VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLRULESTYLE_TEXTDECORATIONOVERLINE), displaybind, bindable] HRESULT textDecorationOverline([retval, out] VARIANT_BOOL * p);
    [propput, id(DISPID_IHTMLRULESTYLE_TEXTDECORATIONLINETHROUGH), displaybind, bindable] HRESULT textDecorationLineThrough([in] VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLRULESTYLE_TEXTDECORATIONLINETHROUGH), displaybind, bindable] HRESULT textDecorationLineThrough([retval, out] VARIANT_BOOL * p);
    [propput, id(DISPID_IHTMLRULESTYLE_TEXTDECORATIONBLINK), displaybind, bindable] HRESULT textDecorationBlink([in] VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLRULESTYLE_TEXTDECORATIONBLINK), displaybind, bindable] HRESULT textDecorationBlink([retval, out] VARIANT_BOOL * p);
    [propput, id(DISPID_IHTMLRULESTYLE_VERTICALALIGN), displaybind, bindable] HRESULT verticalAlign([in] VARIANT v);
    [propget, id(DISPID_IHTMLRULESTYLE_VERTICALALIGN), displaybind, bindable] HRESULT verticalAlign([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLRULESTYLE_TEXTTRANSFORM), displaybind, bindable] HRESULT textTransform([in] BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_TEXTTRANSFORM), displaybind, bindable] HRESULT textTransform([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLRULESTYLE_TEXTALIGN), displaybind, bindable] HRESULT textAlign([in] BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_TEXTALIGN), displaybind, bindable] HRESULT textAlign([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLRULESTYLE_TEXTINDENT), displaybind, bindable] HRESULT textIndent([in] VARIANT v);
    [propget, id(DISPID_IHTMLRULESTYLE_TEXTINDENT), displaybind, bindable] HRESULT textIndent([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLRULESTYLE_LINEHEIGHT), displaybind, bindable] HRESULT lineHeight([in] VARIANT v);
    [propget, id(DISPID_IHTMLRULESTYLE_LINEHEIGHT), displaybind, bindable] HRESULT lineHeight([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLRULESTYLE_MARGINTOP), displaybind, bindable] HRESULT marginTop([in] VARIANT v);
    [propget, id(DISPID_IHTMLRULESTYLE_MARGINTOP), displaybind, bindable] HRESULT marginTop([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLRULESTYLE_MARGINRIGHT), displaybind, bindable] HRESULT marginRight([in] VARIANT v);
    [propget, id(DISPID_IHTMLRULESTYLE_MARGINRIGHT), displaybind, bindable] HRESULT marginRight([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLRULESTYLE_MARGINBOTTOM), displaybind, bindable] HRESULT marginBottom([in] VARIANT v);
    [propget, id(DISPID_IHTMLRULESTYLE_MARGINBOTTOM), displaybind, bindable] HRESULT marginBottom([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLRULESTYLE_MARGINLEFT), displaybind, bindable] HRESULT marginLeft([in] VARIANT v);
    [propget, id(DISPID_IHTMLRULESTYLE_MARGINLEFT), displaybind, bindable] HRESULT marginLeft([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLRULESTYLE_MARGIN), displaybind, bindable, nonbrowsable] HRESULT margin([in] BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_MARGIN), displaybind, bindable, nonbrowsable] HRESULT margin([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLRULESTYLE_PADDINGTOP), displaybind, bindable] HRESULT paddingTop([in] VARIANT v);
    [propget, id(DISPID_IHTMLRULESTYLE_PADDINGTOP), displaybind, bindable] HRESULT paddingTop([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLRULESTYLE_PADDINGRIGHT), displaybind, bindable] HRESULT paddingRight([in] VARIANT v);
    [propget, id(DISPID_IHTMLRULESTYLE_PADDINGRIGHT), displaybind, bindable] HRESULT paddingRight([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLRULESTYLE_PADDINGBOTTOM), displaybind, bindable] HRESULT paddingBottom([in] VARIANT v);
    [propget, id(DISPID_IHTMLRULESTYLE_PADDINGBOTTOM), displaybind, bindable] HRESULT paddingBottom([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLRULESTYLE_PADDINGLEFT), displaybind, bindable] HRESULT paddingLeft([in] VARIANT v);
    [propget, id(DISPID_IHTMLRULESTYLE_PADDINGLEFT), displaybind, bindable] HRESULT paddingLeft([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLRULESTYLE_PADDING), displaybind, bindable, nonbrowsable] HRESULT padding([in] BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_PADDING), displaybind, bindable, nonbrowsable] HRESULT padding([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLRULESTYLE_BORDER), displaybind, bindable, nonbrowsable] HRESULT border([in] BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_BORDER), displaybind, bindable, nonbrowsable] HRESULT border([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLRULESTYLE_BORDERTOP), displaybind, bindable] HRESULT borderTop([in] BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_BORDERTOP), displaybind, bindable] HRESULT borderTop([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLRULESTYLE_BORDERRIGHT), displaybind, bindable] HRESULT borderRight([in] BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_BORDERRIGHT), displaybind, bindable] HRESULT borderRight([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLRULESTYLE_BORDERBOTTOM), displaybind, bindable] HRESULT borderBottom([in] BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_BORDERBOTTOM), displaybind, bindable] HRESULT borderBottom([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLRULESTYLE_BORDERLEFT), displaybind, bindable] HRESULT borderLeft([in] BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_BORDERLEFT), displaybind, bindable] HRESULT borderLeft([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLRULESTYLE_BORDERCOLOR), displaybind, bindable] HRESULT borderColor([in] BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_BORDERCOLOR), displaybind, bindable] HRESULT borderColor([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLRULESTYLE_BORDERTOPCOLOR), displaybind, bindable] HRESULT borderTopColor([in] VARIANT v);
    [propget, id(DISPID_IHTMLRULESTYLE_BORDERTOPCOLOR), displaybind, bindable] HRESULT borderTopColor([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLRULESTYLE_BORDERRIGHTCOLOR), displaybind, bindable] HRESULT borderRightColor([in] VARIANT v);
    [propget, id(DISPID_IHTMLRULESTYLE_BORDERRIGHTCOLOR), displaybind, bindable] HRESULT borderRightColor([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLRULESTYLE_BORDERBOTTOMCOLOR), displaybind, bindable] HRESULT borderBottomColor([in] VARIANT v);
    [propget, id(DISPID_IHTMLRULESTYLE_BORDERBOTTOMCOLOR), displaybind, bindable] HRESULT borderBottomColor([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLRULESTYLE_BORDERLEFTCOLOR), displaybind, bindable] HRESULT borderLeftColor([in] VARIANT v);
    [propget, id(DISPID_IHTMLRULESTYLE_BORDERLEFTCOLOR), displaybind, bindable] HRESULT borderLeftColor([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLRULESTYLE_BORDERWIDTH), displaybind, bindable] HRESULT borderWidth([in] BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_BORDERWIDTH), displaybind, bindable] HRESULT borderWidth([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLRULESTYLE_BORDERTOPWIDTH), displaybind, bindable] HRESULT borderTopWidth([in] VARIANT v);
    [propget, id(DISPID_IHTMLRULESTYLE_BORDERTOPWIDTH), displaybind, bindable] HRESULT borderTopWidth([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLRULESTYLE_BORDERRIGHTWIDTH), displaybind, bindable] HRESULT borderRightWidth([in] VARIANT v);
    [propget, id(DISPID_IHTMLRULESTYLE_BORDERRIGHTWIDTH), displaybind, bindable] HRESULT borderRightWidth([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLRULESTYLE_BORDERBOTTOMWIDTH), displaybind, bindable] HRESULT borderBottomWidth([in] VARIANT v);
    [propget, id(DISPID_IHTMLRULESTYLE_BORDERBOTTOMWIDTH), displaybind, bindable] HRESULT borderBottomWidth([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLRULESTYLE_BORDERLEFTWIDTH), displaybind, bindable] HRESULT borderLeftWidth([in] VARIANT v);
    [propget, id(DISPID_IHTMLRULESTYLE_BORDERLEFTWIDTH), displaybind, bindable] HRESULT borderLeftWidth([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLRULESTYLE_BORDERSTYLE), displaybind, bindable] HRESULT borderStyle([in] BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_BORDERSTYLE), displaybind, bindable] HRESULT borderStyle([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLRULESTYLE_BORDERTOPSTYLE), displaybind, bindable] HRESULT borderTopStyle([in] BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_BORDERTOPSTYLE), displaybind, bindable] HRESULT borderTopStyle([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLRULESTYLE_BORDERRIGHTSTYLE), displaybind, bindable] HRESULT borderRightStyle([in] BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_BORDERRIGHTSTYLE), displaybind, bindable] HRESULT borderRightStyle([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLRULESTYLE_BORDERBOTTOMSTYLE), displaybind, bindable] HRESULT borderBottomStyle([in] BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_BORDERBOTTOMSTYLE), displaybind, bindable] HRESULT borderBottomStyle([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLRULESTYLE_BORDERLEFTSTYLE), displaybind, bindable] HRESULT borderLeftStyle([in] BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_BORDERLEFTSTYLE), displaybind, bindable] HRESULT borderLeftStyle([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLRULESTYLE_WIDTH), displaybind, bindable] HRESULT width([in] VARIANT v);
    [propget, id(DISPID_IHTMLRULESTYLE_WIDTH), displaybind, bindable] HRESULT width([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLRULESTYLE_HEIGHT), displaybind, bindable] HRESULT height([in] VARIANT v);
    [propget, id(DISPID_IHTMLRULESTYLE_HEIGHT), displaybind, bindable] HRESULT height([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLRULESTYLE_STYLEFLOAT), displaybind, bindable] HRESULT styleFloat([in] BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_STYLEFLOAT), displaybind, bindable] HRESULT styleFloat([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLRULESTYLE_CLEAR), displaybind, bindable] HRESULT clear([in] BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_CLEAR), displaybind, bindable] HRESULT clear([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLRULESTYLE_DISPLAY), displaybind, bindable] HRESULT display([in] BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_DISPLAY), displaybind, bindable] HRESULT display([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLRULESTYLE_VISIBILITY), displaybind, bindable] HRESULT visibility([in] BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_VISIBILITY), displaybind, bindable] HRESULT visibility([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLRULESTYLE_LISTSTYLETYPE), displaybind, bindable] HRESULT listStyleType([in] BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_LISTSTYLETYPE), displaybind, bindable] HRESULT listStyleType([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLRULESTYLE_LISTSTYLEPOSITION), displaybind, bindable] HRESULT listStylePosition([in] BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_LISTSTYLEPOSITION), displaybind, bindable] HRESULT listStylePosition([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLRULESTYLE_LISTSTYLEIMAGE), displaybind, bindable] HRESULT listStyleImage([in] BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_LISTSTYLEIMAGE), displaybind, bindable] HRESULT listStyleImage([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLRULESTYLE_LISTSTYLE), displaybind, bindable, nonbrowsable] HRESULT listStyle([in] BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_LISTSTYLE), displaybind, bindable, nonbrowsable] HRESULT listStyle([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLRULESTYLE_WHITESPACE), displaybind, bindable] HRESULT whiteSpace([in] BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_WHITESPACE), displaybind, bindable] HRESULT whiteSpace([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLRULESTYLE_TOP), displaybind, bindable] HRESULT top([in] VARIANT v);
    [propget, id(DISPID_IHTMLRULESTYLE_TOP), displaybind, bindable] HRESULT top([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLRULESTYLE_LEFT), displaybind, bindable] HRESULT left([in] VARIANT v);
    [propget, id(DISPID_IHTMLRULESTYLE_LEFT), displaybind, bindable] HRESULT left([retval, out] VARIANT * p);
    [propget, id(DISPID_IHTMLRULESTYLE_POSITION), displaybind, bindable] HRESULT position([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLRULESTYLE_ZINDEX), displaybind, bindable] HRESULT zIndex([in] VARIANT v);
    [propget, id(DISPID_IHTMLRULESTYLE_ZINDEX), displaybind, bindable] HRESULT zIndex([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLRULESTYLE_OVERFLOW), displaybind, bindable] HRESULT overflow([in] BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_OVERFLOW), displaybind, bindable] HRESULT overflow([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLRULESTYLE_PAGEBREAKBEFORE), displaybind, bindable] HRESULT pageBreakBefore([in] BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_PAGEBREAKBEFORE), displaybind, bindable] HRESULT pageBreakBefore([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLRULESTYLE_PAGEBREAKAFTER), displaybind, bindable] HRESULT pageBreakAfter([in] BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_PAGEBREAKAFTER), displaybind, bindable] HRESULT pageBreakAfter([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLRULESTYLE_CSSTEXT), displaybind, bindable, nonbrowsable] HRESULT cssText([in] BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_CSSTEXT), displaybind, bindable, nonbrowsable] HRESULT cssText([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLRULESTYLE_CURSOR), displaybind, bindable] HRESULT cursor([in] BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_CURSOR), displaybind, bindable] HRESULT cursor([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLRULESTYLE_CLIP), displaybind, bindable] HRESULT clip([in] BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_CLIP), displaybind, bindable] HRESULT clip([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLRULESTYLE_FILTER), displaybind, bindable] HRESULT filter([in] BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_FILTER), displaybind, bindable] HRESULT filter([retval, out] BSTR * p);
    [id(DISPID_IHTMLRULESTYLE_SETATTRIBUTE)] HRESULT setAttribute([in] BSTR strAttributeName,[in] VARIANT AttributeValue,[defaultvalue(1), in] LONG lFlags);
    [id(DISPID_IHTMLRULESTYLE_GETATTRIBUTE)] HRESULT getAttribute([in] BSTR strAttributeName,[defaultvalue(0), in] LONG lFlags,[retval, out] VARIANT* AttributeValue);
    [id(DISPID_IHTMLRULESTYLE_REMOVEATTRIBUTE)] HRESULT removeAttribute([in] BSTR strAttributeName,[defaultvalue(1), in] LONG lFlags,[retval, out] VARIANT_BOOL* pfSuccess);
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f4ac-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLRuleStyle2 : IDispatch
{
    [propput, id(DISPID_IHTMLRULESTYLE2_TABLELAYOUT), displaybind, bindable] HRESULT tableLayout([in] BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE2_TABLELAYOUT), displaybind, bindable] HRESULT tableLayout([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLRULESTYLE2_BORDERCOLLAPSE), displaybind, bindable] HRESULT borderCollapse([in] BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE2_BORDERCOLLAPSE), displaybind, bindable] HRESULT borderCollapse([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLRULESTYLE2_DIRECTION), displaybind, bindable] HRESULT direction([in] BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE2_DIRECTION), displaybind, bindable] HRESULT direction([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLRULESTYLE2_BEHAVIOR), displaybind, bindable] HRESULT behavior([in] BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE2_BEHAVIOR), displaybind, bindable] HRESULT behavior([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLRULESTYLE2_POSITION), displaybind, bindable] HRESULT position([in] BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE2_POSITION), displaybind, bindable] HRESULT position([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLRULESTYLE2_UNICODEBIDI), displaybind, bindable] HRESULT unicodeBidi([in] BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE2_UNICODEBIDI), displaybind, bindable] HRESULT unicodeBidi([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLRULESTYLE2_BOTTOM), displaybind, bindable] HRESULT bottom([in] VARIANT v);
    [propget, id(DISPID_IHTMLRULESTYLE2_BOTTOM), displaybind, bindable] HRESULT bottom([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLRULESTYLE2_RIGHT), displaybind, bindable] HRESULT right([in] VARIANT v);
    [propget, id(DISPID_IHTMLRULESTYLE2_RIGHT), displaybind, bindable] HRESULT right([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLRULESTYLE2_PIXELBOTTOM), displaybind, bindable, hidden] HRESULT pixelBottom([in] long v);
    [propget, id(DISPID_IHTMLRULESTYLE2_PIXELBOTTOM), displaybind, bindable, hidden] HRESULT pixelBottom([retval, out] long * p);
    [propput, id(DISPID_IHTMLRULESTYLE2_PIXELRIGHT), displaybind, bindable, hidden] HRESULT pixelRight([in] long v);
    [propget, id(DISPID_IHTMLRULESTYLE2_PIXELRIGHT), displaybind, bindable, hidden] HRESULT pixelRight([retval, out] long * p);
    [propput, id(DISPID_IHTMLRULESTYLE2_POSBOTTOM), displaybind, bindable] HRESULT posBottom([in] float v);
    [propget, id(DISPID_IHTMLRULESTYLE2_POSBOTTOM), displaybind, bindable] HRESULT posBottom([retval, out] float * p);
    [propput, id(DISPID_IHTMLRULESTYLE2_POSRIGHT), displaybind, bindable] HRESULT posRight([in] float v);
    [propget, id(DISPID_IHTMLRULESTYLE2_POSRIGHT), displaybind, bindable] HRESULT posRight([retval, out] float * p);
    [propput, id(DISPID_IHTMLRULESTYLE2_IMEMODE), displaybind, bindable] HRESULT imeMode([in] BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE2_IMEMODE), displaybind, bindable] HRESULT imeMode([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLRULESTYLE2_RUBYALIGN), displaybind, bindable] HRESULT rubyAlign([in] BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE2_RUBYALIGN), displaybind, bindable] HRESULT rubyAlign([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLRULESTYLE2_RUBYPOSITION), displaybind, bindable] HRESULT rubyPosition([in] BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE2_RUBYPOSITION), displaybind, bindable] HRESULT rubyPosition([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLRULESTYLE2_RUBYOVERHANG), displaybind, bindable] HRESULT rubyOverhang([in] BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE2_RUBYOVERHANG), displaybind, bindable] HRESULT rubyOverhang([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLRULESTYLE2_LAYOUTGRIDCHAR), displaybind, bindable] HRESULT layoutGridChar([in] VARIANT v);
    [propget, id(DISPID_IHTMLRULESTYLE2_LAYOUTGRIDCHAR), displaybind, bindable] HRESULT layoutGridChar([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLRULESTYLE2_LAYOUTGRIDLINE), displaybind, bindable] HRESULT layoutGridLine([in] VARIANT v);
    [propget, id(DISPID_IHTMLRULESTYLE2_LAYOUTGRIDLINE), displaybind, bindable] HRESULT layoutGridLine([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLRULESTYLE2_LAYOUTGRIDMODE), displaybind, bindable] HRESULT layoutGridMode([in] BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE2_LAYOUTGRIDMODE), displaybind, bindable] HRESULT layoutGridMode([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLRULESTYLE2_LAYOUTGRIDTYPE), displaybind, bindable] HRESULT layoutGridType([in] BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE2_LAYOUTGRIDTYPE), displaybind, bindable] HRESULT layoutGridType([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLRULESTYLE2_LAYOUTGRID), displaybind, bindable, nonbrowsable] HRESULT layoutGrid([in] BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE2_LAYOUTGRID), displaybind, bindable, nonbrowsable] HRESULT layoutGrid([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLRULESTYLE2_TEXTAUTOSPACE), displaybind, bindable] HRESULT textAutospace([in] BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE2_TEXTAUTOSPACE), displaybind, bindable] HRESULT textAutospace([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLRULESTYLE2_WORDBREAK), displaybind, bindable] HRESULT wordBreak([in] BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE2_WORDBREAK), displaybind, bindable] HRESULT wordBreak([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLRULESTYLE2_LINEBREAK), displaybind, bindable] HRESULT lineBreak([in] BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE2_LINEBREAK), displaybind, bindable] HRESULT lineBreak([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLRULESTYLE2_TEXTJUSTIFY), displaybind, bindable] HRESULT textJustify([in] BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE2_TEXTJUSTIFY), displaybind, bindable] HRESULT textJustify([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLRULESTYLE2_TEXTJUSTIFYTRIM), displaybind, bindable] HRESULT textJustifyTrim([in] BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE2_TEXTJUSTIFYTRIM), displaybind, bindable] HRESULT textJustifyTrim([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLRULESTYLE2_TEXTKASHIDA), displaybind, bindable] HRESULT textKashida([in] VARIANT v);
    [propget, id(DISPID_IHTMLRULESTYLE2_TEXTKASHIDA), displaybind, bindable] HRESULT textKashida([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLRULESTYLE2_OVERFLOWX), displaybind, bindable] HRESULT overflowX([in] BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE2_OVERFLOWX), displaybind, bindable] HRESULT overflowX([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLRULESTYLE2_OVERFLOWY), displaybind, bindable] HRESULT overflowY([in] BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE2_OVERFLOWY), displaybind, bindable] HRESULT overflowY([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLRULESTYLE2_ACCELERATOR), displaybind, bindable] HRESULT accelerator([in] BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE2_ACCELERATOR), displaybind, bindable] HRESULT accelerator([retval, out] BSTR * p);
};
[
    hidden,
    uuid(3050f55a-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTMLStyle
{
properties:
methods:
    [propput, id(DISPID_IHTMLSTYLE_FONTFAMILY), displaybind, bindable] void fontFamily(BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_FONTFAMILY), displaybind, bindable] BSTR fontFamily();
    [propput, id(DISPID_IHTMLSTYLE_FONTSTYLE), displaybind, bindable] void fontStyle(BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_FONTSTYLE), displaybind, bindable] BSTR fontStyle();
    [propput, id(DISPID_IHTMLSTYLE_FONTVARIANT), displaybind, bindable] void fontVariant(BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_FONTVARIANT), displaybind, bindable] BSTR fontVariant();
    [propput, id(DISPID_IHTMLSTYLE_FONTWEIGHT), displaybind, bindable] void fontWeight(BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_FONTWEIGHT), displaybind, bindable] BSTR fontWeight();
    [propput, id(DISPID_IHTMLSTYLE_FONTSIZE), displaybind, bindable] void fontSize(VARIANT v);
    [propget, id(DISPID_IHTMLSTYLE_FONTSIZE), displaybind, bindable] VARIANT fontSize();
    [propput, id(DISPID_IHTMLSTYLE_FONT), displaybind, bindable, nonbrowsable] void font(BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_FONT), displaybind, bindable, nonbrowsable] BSTR font();
    [propput, id(DISPID_IHTMLSTYLE_COLOR), displaybind, bindable] void color(VARIANT v);
    [propget, id(DISPID_IHTMLSTYLE_COLOR), displaybind, bindable] VARIANT color();
    [propput, id(DISPID_IHTMLSTYLE_BACKGROUND), displaybind, bindable, nonbrowsable] void background(BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_BACKGROUND), displaybind, bindable, nonbrowsable] BSTR background();
    [propput, id(DISPID_IHTMLSTYLE_BACKGROUNDCOLOR), displaybind, bindable] void backgroundColor(VARIANT v);
    [propget, id(DISPID_IHTMLSTYLE_BACKGROUNDCOLOR), displaybind, bindable] VARIANT backgroundColor();
    [propput, id(DISPID_IHTMLSTYLE_BACKGROUNDIMAGE), displaybind, bindable] void backgroundImage(BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_BACKGROUNDIMAGE), displaybind, bindable] BSTR backgroundImage();
    [propput, id(DISPID_IHTMLSTYLE_BACKGROUNDREPEAT), displaybind, bindable] void backgroundRepeat(BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_BACKGROUNDREPEAT), displaybind, bindable] BSTR backgroundRepeat();
    [propput, id(DISPID_IHTMLSTYLE_BACKGROUNDATTACHMENT), displaybind, bindable] void backgroundAttachment(BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_BACKGROUNDATTACHMENT), displaybind, bindable] BSTR backgroundAttachment();
    [propput, id(DISPID_IHTMLSTYLE_BACKGROUNDPOSITION), displaybind, bindable, nonbrowsable] void backgroundPosition(BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_BACKGROUNDPOSITION), displaybind, bindable, nonbrowsable] BSTR backgroundPosition();
    [propput, id(DISPID_IHTMLSTYLE_BACKGROUNDPOSITIONX), displaybind, bindable] void backgroundPositionX(VARIANT v);
    [propget, id(DISPID_IHTMLSTYLE_BACKGROUNDPOSITIONX), displaybind, bindable] VARIANT backgroundPositionX();
    [propput, id(DISPID_IHTMLSTYLE_BACKGROUNDPOSITIONY), displaybind, bindable] void backgroundPositionY(VARIANT v);
    [propget, id(DISPID_IHTMLSTYLE_BACKGROUNDPOSITIONY), displaybind, bindable] VARIANT backgroundPositionY();
    [propput, id(DISPID_IHTMLSTYLE_WORDSPACING), displaybind, bindable] void wordSpacing(VARIANT v);
    [propget, id(DISPID_IHTMLSTYLE_WORDSPACING), displaybind, bindable] VARIANT wordSpacing();
    [propput, id(DISPID_IHTMLSTYLE_LETTERSPACING), displaybind, bindable] void letterSpacing(VARIANT v);
    [propget, id(DISPID_IHTMLSTYLE_LETTERSPACING), displaybind, bindable] VARIANT letterSpacing();
    [propput, id(DISPID_IHTMLSTYLE_TEXTDECORATION), displaybind, bindable] void textDecoration(BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_TEXTDECORATION), displaybind, bindable] BSTR textDecoration();
    [propput, id(DISPID_IHTMLSTYLE_TEXTDECORATIONNONE), displaybind, bindable] void textDecorationNone(VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLSTYLE_TEXTDECORATIONNONE), displaybind, bindable] VARIANT_BOOL textDecorationNone();
    [propput, id(DISPID_IHTMLSTYLE_TEXTDECORATIONUNDERLINE), displaybind, bindable] void textDecorationUnderline(VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLSTYLE_TEXTDECORATIONUNDERLINE), displaybind, bindable] VARIANT_BOOL textDecorationUnderline();
    [propput, id(DISPID_IHTMLSTYLE_TEXTDECORATIONOVERLINE), displaybind, bindable] void textDecorationOverline(VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLSTYLE_TEXTDECORATIONOVERLINE), displaybind, bindable] VARIANT_BOOL textDecorationOverline();
    [propput, id(DISPID_IHTMLSTYLE_TEXTDECORATIONLINETHROUGH), displaybind, bindable] void textDecorationLineThrough(VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLSTYLE_TEXTDECORATIONLINETHROUGH), displaybind, bindable] VARIANT_BOOL textDecorationLineThrough();
    [propput, id(DISPID_IHTMLSTYLE_TEXTDECORATIONBLINK), displaybind, bindable] void textDecorationBlink(VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLSTYLE_TEXTDECORATIONBLINK), displaybind, bindable] VARIANT_BOOL textDecorationBlink();
    [propput, id(DISPID_IHTMLSTYLE_VERTICALALIGN), displaybind, bindable] void verticalAlign(VARIANT v);
    [propget, id(DISPID_IHTMLSTYLE_VERTICALALIGN), displaybind, bindable] VARIANT verticalAlign();
    [propput, id(DISPID_IHTMLSTYLE_TEXTTRANSFORM), displaybind, bindable] void textTransform(BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_TEXTTRANSFORM), displaybind, bindable] BSTR textTransform();
    [propput, id(DISPID_IHTMLSTYLE_TEXTALIGN), displaybind, bindable] void textAlign(BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_TEXTALIGN), displaybind, bindable] BSTR textAlign();
    [propput, id(DISPID_IHTMLSTYLE_TEXTINDENT), displaybind, bindable] void textIndent(VARIANT v);
    [propget, id(DISPID_IHTMLSTYLE_TEXTINDENT), displaybind, bindable] VARIANT textIndent();
    [propput, id(DISPID_IHTMLSTYLE_LINEHEIGHT), displaybind, bindable] void lineHeight(VARIANT v);
    [propget, id(DISPID_IHTMLSTYLE_LINEHEIGHT), displaybind, bindable] VARIANT lineHeight();
    [propput, id(DISPID_IHTMLSTYLE_MARGINTOP), displaybind, bindable] void marginTop(VARIANT v);
    [propget, id(DISPID_IHTMLSTYLE_MARGINTOP), displaybind, bindable] VARIANT marginTop();
    [propput, id(DISPID_IHTMLSTYLE_MARGINRIGHT), displaybind, bindable] void marginRight(VARIANT v);
    [propget, id(DISPID_IHTMLSTYLE_MARGINRIGHT), displaybind, bindable] VARIANT marginRight();
    [propput, id(DISPID_IHTMLSTYLE_MARGINBOTTOM), displaybind, bindable] void marginBottom(VARIANT v);
    [propget, id(DISPID_IHTMLSTYLE_MARGINBOTTOM), displaybind, bindable] VARIANT marginBottom();
    [propput, id(DISPID_IHTMLSTYLE_MARGINLEFT), displaybind, bindable] void marginLeft(VARIANT v);
    [propget, id(DISPID_IHTMLSTYLE_MARGINLEFT), displaybind, bindable] VARIANT marginLeft();
    [propput, id(DISPID_IHTMLSTYLE_MARGIN), displaybind, bindable, nonbrowsable] void margin(BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_MARGIN), displaybind, bindable, nonbrowsable] BSTR margin();
    [propput, id(DISPID_IHTMLSTYLE_PADDINGTOP), displaybind, bindable] void paddingTop(VARIANT v);
    [propget, id(DISPID_IHTMLSTYLE_PADDINGTOP), displaybind, bindable] VARIANT paddingTop();
    [propput, id(DISPID_IHTMLSTYLE_PADDINGRIGHT), displaybind, bindable] void paddingRight(VARIANT v);
    [propget, id(DISPID_IHTMLSTYLE_PADDINGRIGHT), displaybind, bindable] VARIANT paddingRight();
    [propput, id(DISPID_IHTMLSTYLE_PADDINGBOTTOM), displaybind, bindable] void paddingBottom(VARIANT v);
    [propget, id(DISPID_IHTMLSTYLE_PADDINGBOTTOM), displaybind, bindable] VARIANT paddingBottom();
    [propput, id(DISPID_IHTMLSTYLE_PADDINGLEFT), displaybind, bindable] void paddingLeft(VARIANT v);
    [propget, id(DISPID_IHTMLSTYLE_PADDINGLEFT), displaybind, bindable] VARIANT paddingLeft();
    [propput, id(DISPID_IHTMLSTYLE_PADDING), displaybind, bindable, nonbrowsable] void padding(BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_PADDING), displaybind, bindable, nonbrowsable] BSTR padding();
    [propput, id(DISPID_IHTMLSTYLE_BORDER), displaybind, bindable, nonbrowsable] void border(BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_BORDER), displaybind, bindable, nonbrowsable] BSTR border();
    [propput, id(DISPID_IHTMLSTYLE_BORDERTOP), displaybind, bindable] void borderTop(BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_BORDERTOP), displaybind, bindable] BSTR borderTop();
    [propput, id(DISPID_IHTMLSTYLE_BORDERRIGHT), displaybind, bindable] void borderRight(BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_BORDERRIGHT), displaybind, bindable] BSTR borderRight();
    [propput, id(DISPID_IHTMLSTYLE_BORDERBOTTOM), displaybind, bindable] void borderBottom(BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_BORDERBOTTOM), displaybind, bindable] BSTR borderBottom();
    [propput, id(DISPID_IHTMLSTYLE_BORDERLEFT), displaybind, bindable] void borderLeft(BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_BORDERLEFT), displaybind, bindable] BSTR borderLeft();
    [propput, id(DISPID_IHTMLSTYLE_BORDERCOLOR), displaybind, bindable] void borderColor(BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_BORDERCOLOR), displaybind, bindable] BSTR borderColor();
    [propput, id(DISPID_IHTMLSTYLE_BORDERTOPCOLOR), displaybind, bindable] void borderTopColor(VARIANT v);
    [propget, id(DISPID_IHTMLSTYLE_BORDERTOPCOLOR), displaybind, bindable] VARIANT borderTopColor();
    [propput, id(DISPID_IHTMLSTYLE_BORDERRIGHTCOLOR), displaybind, bindable] void borderRightColor(VARIANT v);
    [propget, id(DISPID_IHTMLSTYLE_BORDERRIGHTCOLOR), displaybind, bindable] VARIANT borderRightColor();
    [propput, id(DISPID_IHTMLSTYLE_BORDERBOTTOMCOLOR), displaybind, bindable] void borderBottomColor(VARIANT v);
    [propget, id(DISPID_IHTMLSTYLE_BORDERBOTTOMCOLOR), displaybind, bindable] VARIANT borderBottomColor();
    [propput, id(DISPID_IHTMLSTYLE_BORDERLEFTCOLOR), displaybind, bindable] void borderLeftColor(VARIANT v);
    [propget, id(DISPID_IHTMLSTYLE_BORDERLEFTCOLOR), displaybind, bindable] VARIANT borderLeftColor();
    [propput, id(DISPID_IHTMLSTYLE_BORDERWIDTH), displaybind, bindable] void borderWidth(BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_BORDERWIDTH), displaybind, bindable] BSTR borderWidth();
    [propput, id(DISPID_IHTMLSTYLE_BORDERTOPWIDTH), displaybind, bindable] void borderTopWidth(VARIANT v);
    [propget, id(DISPID_IHTMLSTYLE_BORDERTOPWIDTH), displaybind, bindable] VARIANT borderTopWidth();
    [propput, id(DISPID_IHTMLSTYLE_BORDERRIGHTWIDTH), displaybind, bindable] void borderRightWidth(VARIANT v);
    [propget, id(DISPID_IHTMLSTYLE_BORDERRIGHTWIDTH), displaybind, bindable] VARIANT borderRightWidth();
    [propput, id(DISPID_IHTMLSTYLE_BORDERBOTTOMWIDTH), displaybind, bindable] void borderBottomWidth(VARIANT v);
    [propget, id(DISPID_IHTMLSTYLE_BORDERBOTTOMWIDTH), displaybind, bindable] VARIANT borderBottomWidth();
    [propput, id(DISPID_IHTMLSTYLE_BORDERLEFTWIDTH), displaybind, bindable] void borderLeftWidth(VARIANT v);
    [propget, id(DISPID_IHTMLSTYLE_BORDERLEFTWIDTH), displaybind, bindable] VARIANT borderLeftWidth();
    [propput, id(DISPID_IHTMLSTYLE_BORDERSTYLE), displaybind, bindable] void borderStyle(BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_BORDERSTYLE), displaybind, bindable] BSTR borderStyle();
    [propput, id(DISPID_IHTMLSTYLE_BORDERTOPSTYLE), displaybind, bindable] void borderTopStyle(BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_BORDERTOPSTYLE), displaybind, bindable] BSTR borderTopStyle();
    [propput, id(DISPID_IHTMLSTYLE_BORDERRIGHTSTYLE), displaybind, bindable] void borderRightStyle(BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_BORDERRIGHTSTYLE), displaybind, bindable] BSTR borderRightStyle();
    [propput, id(DISPID_IHTMLSTYLE_BORDERBOTTOMSTYLE), displaybind, bindable] void borderBottomStyle(BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_BORDERBOTTOMSTYLE), displaybind, bindable] BSTR borderBottomStyle();
    [propput, id(DISPID_IHTMLSTYLE_BORDERLEFTSTYLE), displaybind, bindable] void borderLeftStyle(BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_BORDERLEFTSTYLE), displaybind, bindable] BSTR borderLeftStyle();
    [propput, id(DISPID_IHTMLSTYLE_WIDTH), displaybind, bindable] void width(VARIANT v);
    [propget, id(DISPID_IHTMLSTYLE_WIDTH), displaybind, bindable] VARIANT width();
    [propput, id(DISPID_IHTMLSTYLE_HEIGHT), displaybind, bindable] void height(VARIANT v);
    [propget, id(DISPID_IHTMLSTYLE_HEIGHT), displaybind, bindable] VARIANT height();
    [propput, id(DISPID_IHTMLSTYLE_STYLEFLOAT), displaybind, bindable] void styleFloat(BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_STYLEFLOAT), displaybind, bindable] BSTR styleFloat();
    [propput, id(DISPID_IHTMLSTYLE_CLEAR), displaybind, bindable] void clear(BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_CLEAR), displaybind, bindable] BSTR clear();
    [propput, id(DISPID_IHTMLSTYLE_DISPLAY), displaybind, bindable] void display(BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_DISPLAY), displaybind, bindable] BSTR display();
    [propput, id(DISPID_IHTMLSTYLE_VISIBILITY), displaybind, bindable] void visibility(BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_VISIBILITY), displaybind, bindable] BSTR visibility();
    [propput, id(DISPID_IHTMLSTYLE_LISTSTYLETYPE), displaybind, bindable] void listStyleType(BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_LISTSTYLETYPE), displaybind, bindable] BSTR listStyleType();
    [propput, id(DISPID_IHTMLSTYLE_LISTSTYLEPOSITION), displaybind, bindable] void listStylePosition(BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_LISTSTYLEPOSITION), displaybind, bindable] BSTR listStylePosition();
    [propput, id(DISPID_IHTMLSTYLE_LISTSTYLEIMAGE), displaybind, bindable] void listStyleImage(BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_LISTSTYLEIMAGE), displaybind, bindable] BSTR listStyleImage();
    [propput, id(DISPID_IHTMLSTYLE_LISTSTYLE), displaybind, bindable, nonbrowsable] void listStyle(BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_LISTSTYLE), displaybind, bindable, nonbrowsable] BSTR listStyle();
    [propput, id(DISPID_IHTMLSTYLE_WHITESPACE), displaybind, bindable] void whiteSpace(BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_WHITESPACE), displaybind, bindable] BSTR whiteSpace();
    [propput, id(DISPID_IHTMLSTYLE_TOP), displaybind, bindable] void top(VARIANT v);
    [propget, id(DISPID_IHTMLSTYLE_TOP), displaybind, bindable] VARIANT top();
    [propput, id(DISPID_IHTMLSTYLE_LEFT), displaybind, bindable] void left(VARIANT v);
    [propget, id(DISPID_IHTMLSTYLE_LEFT), displaybind, bindable] VARIANT left();
    [propput, id(DISPID_IHTMLSTYLE_ZINDEX), displaybind, bindable] void zIndex(VARIANT v);
    [propget, id(DISPID_IHTMLSTYLE_ZINDEX), displaybind, bindable] VARIANT zIndex();
    [propput, id(DISPID_IHTMLSTYLE_OVERFLOW), displaybind, bindable] void overflow(BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_OVERFLOW), displaybind, bindable] BSTR overflow();
    [propput, id(DISPID_IHTMLSTYLE_PAGEBREAKBEFORE), displaybind, bindable] void pageBreakBefore(BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_PAGEBREAKBEFORE), displaybind, bindable] BSTR pageBreakBefore();
    [propput, id(DISPID_IHTMLSTYLE_PAGEBREAKAFTER), displaybind, bindable] void pageBreakAfter(BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_PAGEBREAKAFTER), displaybind, bindable] BSTR pageBreakAfter();
    [propput, id(DISPID_IHTMLSTYLE_CSSTEXT), displaybind, bindable, nonbrowsable] void cssText(BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_CSSTEXT), displaybind, bindable, nonbrowsable] BSTR cssText();
    [propput, id(DISPID_IHTMLSTYLE_PIXELTOP), displaybind, bindable, hidden] void pixelTop(long v);
    [propget, id(DISPID_IHTMLSTYLE_PIXELTOP), displaybind, bindable, hidden] long pixelTop();
    [propput, id(DISPID_IHTMLSTYLE_PIXELLEFT), displaybind, bindable, hidden] void pixelLeft(long v);
    [propget, id(DISPID_IHTMLSTYLE_PIXELLEFT), displaybind, bindable, hidden] long pixelLeft();
    [propput, id(DISPID_IHTMLSTYLE_PIXELWIDTH), displaybind, bindable, hidden] void pixelWidth(long v);
    [propget, id(DISPID_IHTMLSTYLE_PIXELWIDTH), displaybind, bindable, hidden] long pixelWidth();
    [propput, id(DISPID_IHTMLSTYLE_PIXELHEIGHT), displaybind, bindable, hidden] void pixelHeight(long v);
    [propget, id(DISPID_IHTMLSTYLE_PIXELHEIGHT), displaybind, bindable, hidden] long pixelHeight();
    [propput, id(DISPID_IHTMLSTYLE_POSTOP), displaybind, bindable] void posTop(float v);
    [propget, id(DISPID_IHTMLSTYLE_POSTOP), displaybind, bindable] float posTop();
    [propput, id(DISPID_IHTMLSTYLE_POSLEFT), displaybind, bindable] void posLeft(float v);
    [propget, id(DISPID_IHTMLSTYLE_POSLEFT), displaybind, bindable] float posLeft();
    [propput, id(DISPID_IHTMLSTYLE_POSWIDTH), displaybind, bindable] void posWidth(float v);
    [propget, id(DISPID_IHTMLSTYLE_POSWIDTH), displaybind, bindable] float posWidth();
    [propput, id(DISPID_IHTMLSTYLE_POSHEIGHT), displaybind, bindable] void posHeight(float v);
    [propget, id(DISPID_IHTMLSTYLE_POSHEIGHT), displaybind, bindable] float posHeight();
    [propput, id(DISPID_IHTMLSTYLE_CURSOR), displaybind, bindable] void cursor(BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_CURSOR), displaybind, bindable] BSTR cursor();
    [propput, id(DISPID_IHTMLSTYLE_CLIP), displaybind, bindable] void clip(BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_CLIP), displaybind, bindable] BSTR clip();
    [propput, id(DISPID_IHTMLSTYLE_FILTER), displaybind, bindable] void filter(BSTR v);
    [propget, id(DISPID_IHTMLSTYLE_FILTER), displaybind, bindable] BSTR filter();
    [id(DISPID_IHTMLSTYLE_SETATTRIBUTE)] void setAttribute([in] BSTR strAttributeName,[in] VARIANT AttributeValue,[defaultvalue(1), in] LONG lFlags);
    [id(DISPID_IHTMLSTYLE_GETATTRIBUTE)] VARIANT getAttribute([in] BSTR strAttributeName,[defaultvalue(0), in] LONG lFlags);
    [id(DISPID_IHTMLSTYLE_REMOVEATTRIBUTE)] VARIANT_BOOL removeAttribute([in] BSTR strAttributeName,[defaultvalue(1), in] LONG lFlags);
    [id(DISPID_IHTMLSTYLE_TOSTRING)] BSTR toString();
    [propput, id(DISPID_IHTMLSTYLE2_TABLELAYOUT), displaybind, bindable] void tableLayout(BSTR v);
    [propget, id(DISPID_IHTMLSTYLE2_TABLELAYOUT), displaybind, bindable] BSTR tableLayout();
    [propput, id(DISPID_IHTMLSTYLE2_BORDERCOLLAPSE), displaybind, bindable] void borderCollapse(BSTR v);
    [propget, id(DISPID_IHTMLSTYLE2_BORDERCOLLAPSE), displaybind, bindable] BSTR borderCollapse();
    [propput, id(DISPID_IHTMLSTYLE2_DIRECTION), displaybind, bindable] void direction(BSTR v);
    [propget, id(DISPID_IHTMLSTYLE2_DIRECTION), displaybind, bindable] BSTR direction();
    [propput, id(DISPID_IHTMLSTYLE2_BEHAVIOR), displaybind, bindable] void behavior(BSTR v);
    [propget, id(DISPID_IHTMLSTYLE2_BEHAVIOR), displaybind, bindable] BSTR behavior();
    [id(DISPID_IHTMLSTYLE2_SETEXPRESSION)] void setExpression([in] BSTR propname,[in] BSTR expression,[defaultvalue(""), in] BSTR language);
    [id(DISPID_IHTMLSTYLE2_GETEXPRESSION)] VARIANT getExpression([in] BSTR propname);
    [id(DISPID_IHTMLSTYLE2_REMOVEEXPRESSION)] VARIANT_BOOL removeExpression([in] BSTR propname);
    [propput, id(DISPID_IHTMLSTYLE2_POSITION), displaybind, bindable] void position(BSTR v);
    [propget, id(DISPID_IHTMLSTYLE2_POSITION), displaybind, bindable] BSTR position();
    [propput, id(DISPID_IHTMLSTYLE2_UNICODEBIDI), displaybind, bindable] void unicodeBidi(BSTR v);
    [propget, id(DISPID_IHTMLSTYLE2_UNICODEBIDI), displaybind, bindable] BSTR unicodeBidi();
    [propput, id(DISPID_IHTMLSTYLE2_BOTTOM), displaybind, bindable] void bottom(VARIANT v);
    [propget, id(DISPID_IHTMLSTYLE2_BOTTOM), displaybind, bindable] VARIANT bottom();
    [propput, id(DISPID_IHTMLSTYLE2_RIGHT), displaybind, bindable] void right(VARIANT v);
    [propget, id(DISPID_IHTMLSTYLE2_RIGHT), displaybind, bindable] VARIANT right();
    [propput, id(DISPID_IHTMLSTYLE2_PIXELBOTTOM), displaybind, bindable, hidden] void pixelBottom(long v);
    [propget, id(DISPID_IHTMLSTYLE2_PIXELBOTTOM), displaybind, bindable, hidden] long pixelBottom();
    [propput, id(DISPID_IHTMLSTYLE2_PIXELRIGHT), displaybind, bindable, hidden] void pixelRight(long v);
    [propget, id(DISPID_IHTMLSTYLE2_PIXELRIGHT), displaybind, bindable, hidden] long pixelRight();
    [propput, id(DISPID_IHTMLSTYLE2_POSBOTTOM), displaybind, bindable] void posBottom(float v);
    [propget, id(DISPID_IHTMLSTYLE2_POSBOTTOM), displaybind, bindable] float posBottom();
    [propput, id(DISPID_IHTMLSTYLE2_POSRIGHT), displaybind, bindable] void posRight(float v);
    [propget, id(DISPID_IHTMLSTYLE2_POSRIGHT), displaybind, bindable] float posRight();
    [propput, id(DISPID_IHTMLSTYLE2_IMEMODE), displaybind, bindable] void imeMode(BSTR v);
    [propget, id(DISPID_IHTMLSTYLE2_IMEMODE), displaybind, bindable] BSTR imeMode();
    [propput, id(DISPID_IHTMLSTYLE2_RUBYALIGN), displaybind, bindable] void rubyAlign(BSTR v);
    [propget, id(DISPID_IHTMLSTYLE2_RUBYALIGN), displaybind, bindable] BSTR rubyAlign();
    [propput, id(DISPID_IHTMLSTYLE2_RUBYPOSITION), displaybind, bindable] void rubyPosition(BSTR v);
    [propget, id(DISPID_IHTMLSTYLE2_RUBYPOSITION), displaybind, bindable] BSTR rubyPosition();
    [propput, id(DISPID_IHTMLSTYLE2_RUBYOVERHANG), displaybind, bindable] void rubyOverhang(BSTR v);
    [propget, id(DISPID_IHTMLSTYLE2_RUBYOVERHANG), displaybind, bindable] BSTR rubyOverhang();
    [propput, id(DISPID_IHTMLSTYLE2_LAYOUTGRIDCHAR), displaybind, bindable] void layoutGridChar(VARIANT v);
    [propget, id(DISPID_IHTMLSTYLE2_LAYOUTGRIDCHAR), displaybind, bindable] VARIANT layoutGridChar();
    [propput, id(DISPID_IHTMLSTYLE2_LAYOUTGRIDLINE), displaybind, bindable] void layoutGridLine(VARIANT v);
    [propget, id(DISPID_IHTMLSTYLE2_LAYOUTGRIDLINE), displaybind, bindable] VARIANT layoutGridLine();
    [propput, id(DISPID_IHTMLSTYLE2_LAYOUTGRIDMODE), displaybind, bindable] void layoutGridMode(BSTR v);
    [propget, id(DISPID_IHTMLSTYLE2_LAYOUTGRIDMODE), displaybind, bindable] BSTR layoutGridMode();
    [propput, id(DISPID_IHTMLSTYLE2_LAYOUTGRIDTYPE), displaybind, bindable] void layoutGridType(BSTR v);
    [propget, id(DISPID_IHTMLSTYLE2_LAYOUTGRIDTYPE), displaybind, bindable] BSTR layoutGridType();
    [propput, id(DISPID_IHTMLSTYLE2_LAYOUTGRID), displaybind, bindable, nonbrowsable] void layoutGrid(BSTR v);
    [propget, id(DISPID_IHTMLSTYLE2_LAYOUTGRID), displaybind, bindable, nonbrowsable] BSTR layoutGrid();
    [propput, id(DISPID_IHTMLSTYLE2_WORDBREAK), displaybind, bindable] void wordBreak(BSTR v);
    [propget, id(DISPID_IHTMLSTYLE2_WORDBREAK), displaybind, bindable] BSTR wordBreak();
    [propput, id(DISPID_IHTMLSTYLE2_LINEBREAK), displaybind, bindable] void lineBreak(BSTR v);
    [propget, id(DISPID_IHTMLSTYLE2_LINEBREAK), displaybind, bindable] BSTR lineBreak();
    [propput, id(DISPID_IHTMLSTYLE2_TEXTJUSTIFY), displaybind, bindable] void textJustify(BSTR v);
    [propget, id(DISPID_IHTMLSTYLE2_TEXTJUSTIFY), displaybind, bindable] BSTR textJustify();
    [propput, id(DISPID_IHTMLSTYLE2_TEXTJUSTIFYTRIM), displaybind, bindable] void textJustifyTrim(BSTR v);
    [propget, id(DISPID_IHTMLSTYLE2_TEXTJUSTIFYTRIM), displaybind, bindable] BSTR textJustifyTrim();
    [propput, id(DISPID_IHTMLSTYLE2_TEXTKASHIDA), displaybind, bindable] void textKashida(VARIANT v);
    [propget, id(DISPID_IHTMLSTYLE2_TEXTKASHIDA), displaybind, bindable] VARIANT textKashida();
    [propput, id(DISPID_IHTMLSTYLE2_TEXTAUTOSPACE), displaybind, bindable] void textAutospace(BSTR v);
    [propget, id(DISPID_IHTMLSTYLE2_TEXTAUTOSPACE), displaybind, bindable] BSTR textAutospace();
    [propput, id(DISPID_IHTMLSTYLE2_OVERFLOWX), displaybind, bindable] void overflowX(BSTR v);
    [propget, id(DISPID_IHTMLSTYLE2_OVERFLOWX), displaybind, bindable] BSTR overflowX();
    [propput, id(DISPID_IHTMLSTYLE2_OVERFLOWY), displaybind, bindable] void overflowY(BSTR v);
    [propget, id(DISPID_IHTMLSTYLE2_OVERFLOWY), displaybind, bindable] BSTR overflowY();
    [propput, id(DISPID_IHTMLSTYLE2_ACCELERATOR), displaybind, bindable] void accelerator(BSTR v);
    [propget, id(DISPID_IHTMLSTYLE2_ACCELERATOR), displaybind, bindable] BSTR accelerator();
};
[
    uuid(3050f285-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLStyle
{
    [default]           dispinterface DispHTMLStyle;
                        interface IHTMLStyle;
                        interface IHTMLStyle2;
};
cpp_quote("EXTERN_C const GUID CLSID_CStyle;")
[
    hidden,
    uuid(3050f55c-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTMLRuleStyle
{
properties:
methods:
    [propput, id(DISPID_IHTMLRULESTYLE_FONTFAMILY), displaybind, bindable] void fontFamily(BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_FONTFAMILY), displaybind, bindable] BSTR fontFamily();
    [propput, id(DISPID_IHTMLRULESTYLE_FONTSTYLE), displaybind, bindable] void fontStyle(BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_FONTSTYLE), displaybind, bindable] BSTR fontStyle();
    [propput, id(DISPID_IHTMLRULESTYLE_FONTVARIANT), displaybind, bindable] void fontVariant(BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_FONTVARIANT), displaybind, bindable] BSTR fontVariant();
    [propput, id(DISPID_IHTMLRULESTYLE_FONTWEIGHT), displaybind, bindable] void fontWeight(BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_FONTWEIGHT), displaybind, bindable] BSTR fontWeight();
    [propput, id(DISPID_IHTMLRULESTYLE_FONTSIZE), displaybind, bindable] void fontSize(VARIANT v);
    [propget, id(DISPID_IHTMLRULESTYLE_FONTSIZE), displaybind, bindable] VARIANT fontSize();
    [propput, id(DISPID_IHTMLRULESTYLE_FONT), displaybind, bindable, nonbrowsable] void font(BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_FONT), displaybind, bindable, nonbrowsable] BSTR font();
    [propput, id(DISPID_IHTMLRULESTYLE_COLOR), displaybind, bindable] void color(VARIANT v);
    [propget, id(DISPID_IHTMLRULESTYLE_COLOR), displaybind, bindable] VARIANT color();
    [propput, id(DISPID_IHTMLRULESTYLE_BACKGROUND), displaybind, bindable, nonbrowsable] void background(BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_BACKGROUND), displaybind, bindable, nonbrowsable] BSTR background();
    [propput, id(DISPID_IHTMLRULESTYLE_BACKGROUNDCOLOR), displaybind, bindable] void backgroundColor(VARIANT v);
    [propget, id(DISPID_IHTMLRULESTYLE_BACKGROUNDCOLOR), displaybind, bindable] VARIANT backgroundColor();
    [propput, id(DISPID_IHTMLRULESTYLE_BACKGROUNDIMAGE), displaybind, bindable] void backgroundImage(BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_BACKGROUNDIMAGE), displaybind, bindable] BSTR backgroundImage();
    [propput, id(DISPID_IHTMLRULESTYLE_BACKGROUNDREPEAT), displaybind, bindable] void backgroundRepeat(BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_BACKGROUNDREPEAT), displaybind, bindable] BSTR backgroundRepeat();
    [propput, id(DISPID_IHTMLRULESTYLE_BACKGROUNDATTACHMENT), displaybind, bindable] void backgroundAttachment(BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_BACKGROUNDATTACHMENT), displaybind, bindable] BSTR backgroundAttachment();
    [propput, id(DISPID_IHTMLRULESTYLE_BACKGROUNDPOSITION), displaybind, bindable, nonbrowsable] void backgroundPosition(BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_BACKGROUNDPOSITION), displaybind, bindable, nonbrowsable] BSTR backgroundPosition();
    [propput, id(DISPID_IHTMLRULESTYLE_BACKGROUNDPOSITIONX), displaybind, bindable] void backgroundPositionX(VARIANT v);
    [propget, id(DISPID_IHTMLRULESTYLE_BACKGROUNDPOSITIONX), displaybind, bindable] VARIANT backgroundPositionX();
    [propput, id(DISPID_IHTMLRULESTYLE_BACKGROUNDPOSITIONY), displaybind, bindable] void backgroundPositionY(VARIANT v);
    [propget, id(DISPID_IHTMLRULESTYLE_BACKGROUNDPOSITIONY), displaybind, bindable] VARIANT backgroundPositionY();
    [propput, id(DISPID_IHTMLRULESTYLE_WORDSPACING), displaybind, bindable] void wordSpacing(VARIANT v);
    [propget, id(DISPID_IHTMLRULESTYLE_WORDSPACING), displaybind, bindable] VARIANT wordSpacing();
    [propput, id(DISPID_IHTMLRULESTYLE_LETTERSPACING), displaybind, bindable] void letterSpacing(VARIANT v);
    [propget, id(DISPID_IHTMLRULESTYLE_LETTERSPACING), displaybind, bindable] VARIANT letterSpacing();
    [propput, id(DISPID_IHTMLRULESTYLE_TEXTDECORATION), displaybind, bindable] void textDecoration(BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_TEXTDECORATION), displaybind, bindable] BSTR textDecoration();
    [propput, id(DISPID_IHTMLRULESTYLE_TEXTDECORATIONNONE), displaybind, bindable] void textDecorationNone(VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLRULESTYLE_TEXTDECORATIONNONE), displaybind, bindable] VARIANT_BOOL textDecorationNone();
    [propput, id(DISPID_IHTMLRULESTYLE_TEXTDECORATIONUNDERLINE), displaybind, bindable] void textDecorationUnderline(VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLRULESTYLE_TEXTDECORATIONUNDERLINE), displaybind, bindable] VARIANT_BOOL textDecorationUnderline();
    [propput, id(DISPID_IHTMLRULESTYLE_TEXTDECORATIONOVERLINE), displaybind, bindable] void textDecorationOverline(VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLRULESTYLE_TEXTDECORATIONOVERLINE), displaybind, bindable] VARIANT_BOOL textDecorationOverline();
    [propput, id(DISPID_IHTMLRULESTYLE_TEXTDECORATIONLINETHROUGH), displaybind, bindable] void textDecorationLineThrough(VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLRULESTYLE_TEXTDECORATIONLINETHROUGH), displaybind, bindable] VARIANT_BOOL textDecorationLineThrough();
    [propput, id(DISPID_IHTMLRULESTYLE_TEXTDECORATIONBLINK), displaybind, bindable] void textDecorationBlink(VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLRULESTYLE_TEXTDECORATIONBLINK), displaybind, bindable] VARIANT_BOOL textDecorationBlink();
    [propput, id(DISPID_IHTMLRULESTYLE_VERTICALALIGN), displaybind, bindable] void verticalAlign(VARIANT v);
    [propget, id(DISPID_IHTMLRULESTYLE_VERTICALALIGN), displaybind, bindable] VARIANT verticalAlign();
    [propput, id(DISPID_IHTMLRULESTYLE_TEXTTRANSFORM), displaybind, bindable] void textTransform(BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_TEXTTRANSFORM), displaybind, bindable] BSTR textTransform();
    [propput, id(DISPID_IHTMLRULESTYLE_TEXTALIGN), displaybind, bindable] void textAlign(BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_TEXTALIGN), displaybind, bindable] BSTR textAlign();
    [propput, id(DISPID_IHTMLRULESTYLE_TEXTINDENT), displaybind, bindable] void textIndent(VARIANT v);
    [propget, id(DISPID_IHTMLRULESTYLE_TEXTINDENT), displaybind, bindable] VARIANT textIndent();
    [propput, id(DISPID_IHTMLRULESTYLE_LINEHEIGHT), displaybind, bindable] void lineHeight(VARIANT v);
    [propget, id(DISPID_IHTMLRULESTYLE_LINEHEIGHT), displaybind, bindable] VARIANT lineHeight();
    [propput, id(DISPID_IHTMLRULESTYLE_MARGINTOP), displaybind, bindable] void marginTop(VARIANT v);
    [propget, id(DISPID_IHTMLRULESTYLE_MARGINTOP), displaybind, bindable] VARIANT marginTop();
    [propput, id(DISPID_IHTMLRULESTYLE_MARGINRIGHT), displaybind, bindable] void marginRight(VARIANT v);
    [propget, id(DISPID_IHTMLRULESTYLE_MARGINRIGHT), displaybind, bindable] VARIANT marginRight();
    [propput, id(DISPID_IHTMLRULESTYLE_MARGINBOTTOM), displaybind, bindable] void marginBottom(VARIANT v);
    [propget, id(DISPID_IHTMLRULESTYLE_MARGINBOTTOM), displaybind, bindable] VARIANT marginBottom();
    [propput, id(DISPID_IHTMLRULESTYLE_MARGINLEFT), displaybind, bindable] void marginLeft(VARIANT v);
    [propget, id(DISPID_IHTMLRULESTYLE_MARGINLEFT), displaybind, bindable] VARIANT marginLeft();
    [propput, id(DISPID_IHTMLRULESTYLE_MARGIN), displaybind, bindable, nonbrowsable] void margin(BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_MARGIN), displaybind, bindable, nonbrowsable] BSTR margin();
    [propput, id(DISPID_IHTMLRULESTYLE_PADDINGTOP), displaybind, bindable] void paddingTop(VARIANT v);
    [propget, id(DISPID_IHTMLRULESTYLE_PADDINGTOP), displaybind, bindable] VARIANT paddingTop();
    [propput, id(DISPID_IHTMLRULESTYLE_PADDINGRIGHT), displaybind, bindable] void paddingRight(VARIANT v);
    [propget, id(DISPID_IHTMLRULESTYLE_PADDINGRIGHT), displaybind, bindable] VARIANT paddingRight();
    [propput, id(DISPID_IHTMLRULESTYLE_PADDINGBOTTOM), displaybind, bindable] void paddingBottom(VARIANT v);
    [propget, id(DISPID_IHTMLRULESTYLE_PADDINGBOTTOM), displaybind, bindable] VARIANT paddingBottom();
    [propput, id(DISPID_IHTMLRULESTYLE_PADDINGLEFT), displaybind, bindable] void paddingLeft(VARIANT v);
    [propget, id(DISPID_IHTMLRULESTYLE_PADDINGLEFT), displaybind, bindable] VARIANT paddingLeft();
    [propput, id(DISPID_IHTMLRULESTYLE_PADDING), displaybind, bindable, nonbrowsable] void padding(BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_PADDING), displaybind, bindable, nonbrowsable] BSTR padding();
    [propput, id(DISPID_IHTMLRULESTYLE_BORDER), displaybind, bindable, nonbrowsable] void border(BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_BORDER), displaybind, bindable, nonbrowsable] BSTR border();
    [propput, id(DISPID_IHTMLRULESTYLE_BORDERTOP), displaybind, bindable] void borderTop(BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_BORDERTOP), displaybind, bindable] BSTR borderTop();
    [propput, id(DISPID_IHTMLRULESTYLE_BORDERRIGHT), displaybind, bindable] void borderRight(BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_BORDERRIGHT), displaybind, bindable] BSTR borderRight();
    [propput, id(DISPID_IHTMLRULESTYLE_BORDERBOTTOM), displaybind, bindable] void borderBottom(BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_BORDERBOTTOM), displaybind, bindable] BSTR borderBottom();
    [propput, id(DISPID_IHTMLRULESTYLE_BORDERLEFT), displaybind, bindable] void borderLeft(BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_BORDERLEFT), displaybind, bindable] BSTR borderLeft();
    [propput, id(DISPID_IHTMLRULESTYLE_BORDERCOLOR), displaybind, bindable] void borderColor(BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_BORDERCOLOR), displaybind, bindable] BSTR borderColor();
    [propput, id(DISPID_IHTMLRULESTYLE_BORDERTOPCOLOR), displaybind, bindable] void borderTopColor(VARIANT v);
    [propget, id(DISPID_IHTMLRULESTYLE_BORDERTOPCOLOR), displaybind, bindable] VARIANT borderTopColor();
    [propput, id(DISPID_IHTMLRULESTYLE_BORDERRIGHTCOLOR), displaybind, bindable] void borderRightColor(VARIANT v);
    [propget, id(DISPID_IHTMLRULESTYLE_BORDERRIGHTCOLOR), displaybind, bindable] VARIANT borderRightColor();
    [propput, id(DISPID_IHTMLRULESTYLE_BORDERBOTTOMCOLOR), displaybind, bindable] void borderBottomColor(VARIANT v);
    [propget, id(DISPID_IHTMLRULESTYLE_BORDERBOTTOMCOLOR), displaybind, bindable] VARIANT borderBottomColor();
    [propput, id(DISPID_IHTMLRULESTYLE_BORDERLEFTCOLOR), displaybind, bindable] void borderLeftColor(VARIANT v);
    [propget, id(DISPID_IHTMLRULESTYLE_BORDERLEFTCOLOR), displaybind, bindable] VARIANT borderLeftColor();
    [propput, id(DISPID_IHTMLRULESTYLE_BORDERWIDTH), displaybind, bindable] void borderWidth(BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_BORDERWIDTH), displaybind, bindable] BSTR borderWidth();
    [propput, id(DISPID_IHTMLRULESTYLE_BORDERTOPWIDTH), displaybind, bindable] void borderTopWidth(VARIANT v);
    [propget, id(DISPID_IHTMLRULESTYLE_BORDERTOPWIDTH), displaybind, bindable] VARIANT borderTopWidth();
    [propput, id(DISPID_IHTMLRULESTYLE_BORDERRIGHTWIDTH), displaybind, bindable] void borderRightWidth(VARIANT v);
    [propget, id(DISPID_IHTMLRULESTYLE_BORDERRIGHTWIDTH), displaybind, bindable] VARIANT borderRightWidth();
    [propput, id(DISPID_IHTMLRULESTYLE_BORDERBOTTOMWIDTH), displaybind, bindable] void borderBottomWidth(VARIANT v);
    [propget, id(DISPID_IHTMLRULESTYLE_BORDERBOTTOMWIDTH), displaybind, bindable] VARIANT borderBottomWidth();
    [propput, id(DISPID_IHTMLRULESTYLE_BORDERLEFTWIDTH), displaybind, bindable] void borderLeftWidth(VARIANT v);
    [propget, id(DISPID_IHTMLRULESTYLE_BORDERLEFTWIDTH), displaybind, bindable] VARIANT borderLeftWidth();
    [propput, id(DISPID_IHTMLRULESTYLE_BORDERSTYLE), displaybind, bindable] void borderStyle(BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_BORDERSTYLE), displaybind, bindable] BSTR borderStyle();
    [propput, id(DISPID_IHTMLRULESTYLE_BORDERTOPSTYLE), displaybind, bindable] void borderTopStyle(BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_BORDERTOPSTYLE), displaybind, bindable] BSTR borderTopStyle();
    [propput, id(DISPID_IHTMLRULESTYLE_BORDERRIGHTSTYLE), displaybind, bindable] void borderRightStyle(BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_BORDERRIGHTSTYLE), displaybind, bindable] BSTR borderRightStyle();
    [propput, id(DISPID_IHTMLRULESTYLE_BORDERBOTTOMSTYLE), displaybind, bindable] void borderBottomStyle(BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_BORDERBOTTOMSTYLE), displaybind, bindable] BSTR borderBottomStyle();
    [propput, id(DISPID_IHTMLRULESTYLE_BORDERLEFTSTYLE), displaybind, bindable] void borderLeftStyle(BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_BORDERLEFTSTYLE), displaybind, bindable] BSTR borderLeftStyle();
    [propput, id(DISPID_IHTMLRULESTYLE_WIDTH), displaybind, bindable] void width(VARIANT v);
    [propget, id(DISPID_IHTMLRULESTYLE_WIDTH), displaybind, bindable] VARIANT width();
    [propput, id(DISPID_IHTMLRULESTYLE_HEIGHT), displaybind, bindable] void height(VARIANT v);
    [propget, id(DISPID_IHTMLRULESTYLE_HEIGHT), displaybind, bindable] VARIANT height();
    [propput, id(DISPID_IHTMLRULESTYLE_STYLEFLOAT), displaybind, bindable] void styleFloat(BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_STYLEFLOAT), displaybind, bindable] BSTR styleFloat();
    [propput, id(DISPID_IHTMLRULESTYLE_CLEAR), displaybind, bindable] void clear(BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_CLEAR), displaybind, bindable] BSTR clear();
    [propput, id(DISPID_IHTMLRULESTYLE_DISPLAY), displaybind, bindable] void display(BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_DISPLAY), displaybind, bindable] BSTR display();
    [propput, id(DISPID_IHTMLRULESTYLE_VISIBILITY), displaybind, bindable] void visibility(BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_VISIBILITY), displaybind, bindable] BSTR visibility();
    [propput, id(DISPID_IHTMLRULESTYLE_LISTSTYLETYPE), displaybind, bindable] void listStyleType(BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_LISTSTYLETYPE), displaybind, bindable] BSTR listStyleType();
    [propput, id(DISPID_IHTMLRULESTYLE_LISTSTYLEPOSITION), displaybind, bindable] void listStylePosition(BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_LISTSTYLEPOSITION), displaybind, bindable] BSTR listStylePosition();
    [propput, id(DISPID_IHTMLRULESTYLE_LISTSTYLEIMAGE), displaybind, bindable] void listStyleImage(BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_LISTSTYLEIMAGE), displaybind, bindable] BSTR listStyleImage();
    [propput, id(DISPID_IHTMLRULESTYLE_LISTSTYLE), displaybind, bindable, nonbrowsable] void listStyle(BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_LISTSTYLE), displaybind, bindable, nonbrowsable] BSTR listStyle();
    [propput, id(DISPID_IHTMLRULESTYLE_WHITESPACE), displaybind, bindable] void whiteSpace(BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_WHITESPACE), displaybind, bindable] BSTR whiteSpace();
    [propput, id(DISPID_IHTMLRULESTYLE_TOP), displaybind, bindable] void top(VARIANT v);
    [propget, id(DISPID_IHTMLRULESTYLE_TOP), displaybind, bindable] VARIANT top();
    [propput, id(DISPID_IHTMLRULESTYLE_LEFT), displaybind, bindable] void left(VARIANT v);
    [propget, id(DISPID_IHTMLRULESTYLE_LEFT), displaybind, bindable] VARIANT left();
    [propput, id(DISPID_IHTMLRULESTYLE_ZINDEX), displaybind, bindable] void zIndex(VARIANT v);
    [propget, id(DISPID_IHTMLRULESTYLE_ZINDEX), displaybind, bindable] VARIANT zIndex();
    [propput, id(DISPID_IHTMLRULESTYLE_OVERFLOW), displaybind, bindable] void overflow(BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_OVERFLOW), displaybind, bindable] BSTR overflow();
    [propput, id(DISPID_IHTMLRULESTYLE_PAGEBREAKBEFORE), displaybind, bindable] void pageBreakBefore(BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_PAGEBREAKBEFORE), displaybind, bindable] BSTR pageBreakBefore();
    [propput, id(DISPID_IHTMLRULESTYLE_PAGEBREAKAFTER), displaybind, bindable] void pageBreakAfter(BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_PAGEBREAKAFTER), displaybind, bindable] BSTR pageBreakAfter();
    [propput, id(DISPID_IHTMLRULESTYLE_CSSTEXT), displaybind, bindable, nonbrowsable] void cssText(BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_CSSTEXT), displaybind, bindable, nonbrowsable] BSTR cssText();
    [propput, id(DISPID_IHTMLRULESTYLE_CURSOR), displaybind, bindable] void cursor(BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_CURSOR), displaybind, bindable] BSTR cursor();
    [propput, id(DISPID_IHTMLRULESTYLE_CLIP), displaybind, bindable] void clip(BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_CLIP), displaybind, bindable] BSTR clip();
    [propput, id(DISPID_IHTMLRULESTYLE_FILTER), displaybind, bindable] void filter(BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE_FILTER), displaybind, bindable] BSTR filter();
    [id(DISPID_IHTMLRULESTYLE_SETATTRIBUTE)] void setAttribute([in] BSTR strAttributeName,[in] VARIANT AttributeValue,[defaultvalue(1), in] LONG lFlags);
    [id(DISPID_IHTMLRULESTYLE_GETATTRIBUTE)] VARIANT getAttribute([in] BSTR strAttributeName,[defaultvalue(0), in] LONG lFlags);
    [id(DISPID_IHTMLRULESTYLE_REMOVEATTRIBUTE)] VARIANT_BOOL removeAttribute([in] BSTR strAttributeName,[defaultvalue(1), in] LONG lFlags);
    [propput, id(DISPID_IHTMLRULESTYLE2_TABLELAYOUT), displaybind, bindable] void tableLayout(BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE2_TABLELAYOUT), displaybind, bindable] BSTR tableLayout();
    [propput, id(DISPID_IHTMLRULESTYLE2_BORDERCOLLAPSE), displaybind, bindable] void borderCollapse(BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE2_BORDERCOLLAPSE), displaybind, bindable] BSTR borderCollapse();
    [propput, id(DISPID_IHTMLRULESTYLE2_DIRECTION), displaybind, bindable] void direction(BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE2_DIRECTION), displaybind, bindable] BSTR direction();
    [propput, id(DISPID_IHTMLRULESTYLE2_BEHAVIOR), displaybind, bindable] void behavior(BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE2_BEHAVIOR), displaybind, bindable] BSTR behavior();
    [propput, id(DISPID_IHTMLRULESTYLE2_POSITION), displaybind, bindable] void position(BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE2_POSITION), displaybind, bindable] BSTR position();
    [propput, id(DISPID_IHTMLRULESTYLE2_UNICODEBIDI), displaybind, bindable] void unicodeBidi(BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE2_UNICODEBIDI), displaybind, bindable] BSTR unicodeBidi();
    [propput, id(DISPID_IHTMLRULESTYLE2_BOTTOM), displaybind, bindable] void bottom(VARIANT v);
    [propget, id(DISPID_IHTMLRULESTYLE2_BOTTOM), displaybind, bindable] VARIANT bottom();
    [propput, id(DISPID_IHTMLRULESTYLE2_RIGHT), displaybind, bindable] void right(VARIANT v);
    [propget, id(DISPID_IHTMLRULESTYLE2_RIGHT), displaybind, bindable] VARIANT right();
    [propput, id(DISPID_IHTMLRULESTYLE2_PIXELBOTTOM), displaybind, bindable, hidden] void pixelBottom(long v);
    [propget, id(DISPID_IHTMLRULESTYLE2_PIXELBOTTOM), displaybind, bindable, hidden] long pixelBottom();
    [propput, id(DISPID_IHTMLRULESTYLE2_PIXELRIGHT), displaybind, bindable, hidden] void pixelRight(long v);
    [propget, id(DISPID_IHTMLRULESTYLE2_PIXELRIGHT), displaybind, bindable, hidden] long pixelRight();
    [propput, id(DISPID_IHTMLRULESTYLE2_POSBOTTOM), displaybind, bindable] void posBottom(float v);
    [propget, id(DISPID_IHTMLRULESTYLE2_POSBOTTOM), displaybind, bindable] float posBottom();
    [propput, id(DISPID_IHTMLRULESTYLE2_POSRIGHT), displaybind, bindable] void posRight(float v);
    [propget, id(DISPID_IHTMLRULESTYLE2_POSRIGHT), displaybind, bindable] float posRight();
    [propput, id(DISPID_IHTMLRULESTYLE2_IMEMODE), displaybind, bindable] void imeMode(BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE2_IMEMODE), displaybind, bindable] BSTR imeMode();
    [propput, id(DISPID_IHTMLRULESTYLE2_RUBYALIGN), displaybind, bindable] void rubyAlign(BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE2_RUBYALIGN), displaybind, bindable] BSTR rubyAlign();
    [propput, id(DISPID_IHTMLRULESTYLE2_RUBYPOSITION), displaybind, bindable] void rubyPosition(BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE2_RUBYPOSITION), displaybind, bindable] BSTR rubyPosition();
    [propput, id(DISPID_IHTMLRULESTYLE2_RUBYOVERHANG), displaybind, bindable] void rubyOverhang(BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE2_RUBYOVERHANG), displaybind, bindable] BSTR rubyOverhang();
    [propput, id(DISPID_IHTMLRULESTYLE2_LAYOUTGRIDCHAR), displaybind, bindable] void layoutGridChar(VARIANT v);
    [propget, id(DISPID_IHTMLRULESTYLE2_LAYOUTGRIDCHAR), displaybind, bindable] VARIANT layoutGridChar();
    [propput, id(DISPID_IHTMLRULESTYLE2_LAYOUTGRIDLINE), displaybind, bindable] void layoutGridLine(VARIANT v);
    [propget, id(DISPID_IHTMLRULESTYLE2_LAYOUTGRIDLINE), displaybind, bindable] VARIANT layoutGridLine();
    [propput, id(DISPID_IHTMLRULESTYLE2_LAYOUTGRIDMODE), displaybind, bindable] void layoutGridMode(BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE2_LAYOUTGRIDMODE), displaybind, bindable] BSTR layoutGridMode();
    [propput, id(DISPID_IHTMLRULESTYLE2_LAYOUTGRIDTYPE), displaybind, bindable] void layoutGridType(BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE2_LAYOUTGRIDTYPE), displaybind, bindable] BSTR layoutGridType();
    [propput, id(DISPID_IHTMLRULESTYLE2_LAYOUTGRID), displaybind, bindable, nonbrowsable] void layoutGrid(BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE2_LAYOUTGRID), displaybind, bindable, nonbrowsable] BSTR layoutGrid();
    [propput, id(DISPID_IHTMLRULESTYLE2_TEXTAUTOSPACE), displaybind, bindable] void textAutospace(BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE2_TEXTAUTOSPACE), displaybind, bindable] BSTR textAutospace();
    [propput, id(DISPID_IHTMLRULESTYLE2_WORDBREAK), displaybind, bindable] void wordBreak(BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE2_WORDBREAK), displaybind, bindable] BSTR wordBreak();
    [propput, id(DISPID_IHTMLRULESTYLE2_LINEBREAK), displaybind, bindable] void lineBreak(BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE2_LINEBREAK), displaybind, bindable] BSTR lineBreak();
    [propput, id(DISPID_IHTMLRULESTYLE2_TEXTJUSTIFY), displaybind, bindable] void textJustify(BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE2_TEXTJUSTIFY), displaybind, bindable] BSTR textJustify();
    [propput, id(DISPID_IHTMLRULESTYLE2_TEXTJUSTIFYTRIM), displaybind, bindable] void textJustifyTrim(BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE2_TEXTJUSTIFYTRIM), displaybind, bindable] BSTR textJustifyTrim();
    [propput, id(DISPID_IHTMLRULESTYLE2_TEXTKASHIDA), displaybind, bindable] void textKashida(VARIANT v);
    [propget, id(DISPID_IHTMLRULESTYLE2_TEXTKASHIDA), displaybind, bindable] VARIANT textKashida();
    [propput, id(DISPID_IHTMLRULESTYLE2_OVERFLOWX), displaybind, bindable] void overflowX(BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE2_OVERFLOWX), displaybind, bindable] BSTR overflowX();
    [propput, id(DISPID_IHTMLRULESTYLE2_OVERFLOWY), displaybind, bindable] void overflowY(BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE2_OVERFLOWY), displaybind, bindable] BSTR overflowY();
    [propput, id(DISPID_IHTMLRULESTYLE2_ACCELERATOR), displaybind, bindable] void accelerator(BSTR v);
    [propget, id(DISPID_IHTMLRULESTYLE2_ACCELERATOR), displaybind, bindable] BSTR accelerator();
};
[
    uuid(3050f3d0-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLRuleStyle
{
    [default]           dispinterface DispHTMLRuleStyle;
                        interface IHTMLRuleStyle;
                        interface IHTMLRuleStyle2;
};
cpp_quote("EXTERN_C const GUID CLSID_CRuleStyle;")
typedef enum _textDecoration
{
    textDecorationNone = 0,
    textDecorationUnderline = 1,
    textDecorationOverline = 2,
    textDecorationLineThrough = 3,
    textDecorationBlink = 4,
    textDecoration_Max = 2147483647L
} textDecoration;

[
    odl,
    oleautomation,
    dual,
    uuid(3050f3db-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLCurrentStyle : IDispatch
{
    [propget, id(DISPID_IHTMLCURRENTSTYLE_POSITION), displaybind, bindable] HRESULT position([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_STYLEFLOAT), displaybind, bindable] HRESULT styleFloat([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_COLOR), displaybind, bindable] HRESULT color([retval, out] VARIANT * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_BACKGROUNDCOLOR), displaybind, bindable] HRESULT backgroundColor([retval, out] VARIANT * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_FONTFAMILY), displaybind, bindable] HRESULT fontFamily([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_FONTSTYLE), displaybind, bindable] HRESULT fontStyle([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_FONTVARIANT), displaybind, bindable, hidden] HRESULT fontVariant([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_FONTWEIGHT), displaybind, bindable] HRESULT fontWeight([retval, out] VARIANT * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_FONTSIZE), displaybind, bindable] HRESULT fontSize([retval, out] VARIANT * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_BACKGROUNDIMAGE), displaybind, bindable] HRESULT backgroundImage([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_BACKGROUNDPOSITIONX), displaybind, bindable] HRESULT backgroundPositionX([retval, out] VARIANT * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_BACKGROUNDPOSITIONY), displaybind, bindable] HRESULT backgroundPositionY([retval, out] VARIANT * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_BACKGROUNDREPEAT), displaybind, bindable] HRESULT backgroundRepeat([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_BORDERLEFTCOLOR), displaybind, bindable] HRESULT borderLeftColor([retval, out] VARIANT * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_BORDERTOPCOLOR), displaybind, bindable] HRESULT borderTopColor([retval, out] VARIANT * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_BORDERRIGHTCOLOR), displaybind, bindable] HRESULT borderRightColor([retval, out] VARIANT * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_BORDERBOTTOMCOLOR), displaybind, bindable] HRESULT borderBottomColor([retval, out] VARIANT * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_BORDERTOPSTYLE), displaybind, bindable] HRESULT borderTopStyle([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_BORDERRIGHTSTYLE), displaybind, bindable] HRESULT borderRightStyle([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_BORDERBOTTOMSTYLE), displaybind, bindable] HRESULT borderBottomStyle([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_BORDERLEFTSTYLE), displaybind, bindable] HRESULT borderLeftStyle([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_BORDERTOPWIDTH), displaybind, bindable] HRESULT borderTopWidth([retval, out] VARIANT * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_BORDERRIGHTWIDTH), displaybind, bindable] HRESULT borderRightWidth([retval, out] VARIANT * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_BORDERBOTTOMWIDTH), displaybind, bindable] HRESULT borderBottomWidth([retval, out] VARIANT * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_BORDERLEFTWIDTH), displaybind, bindable] HRESULT borderLeftWidth([retval, out] VARIANT * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_LEFT), displaybind, bindable] HRESULT left([retval, out] VARIANT * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_TOP), displaybind, bindable] HRESULT top([retval, out] VARIANT * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_WIDTH), displaybind, bindable] HRESULT width([retval, out] VARIANT * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_HEIGHT), displaybind, bindable] HRESULT height([retval, out] VARIANT * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_PADDINGLEFT), displaybind, bindable] HRESULT paddingLeft([retval, out] VARIANT * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_PADDINGTOP), displaybind, bindable] HRESULT paddingTop([retval, out] VARIANT * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_PADDINGRIGHT), displaybind, bindable] HRESULT paddingRight([retval, out] VARIANT * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_PADDINGBOTTOM), displaybind, bindable] HRESULT paddingBottom([retval, out] VARIANT * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_TEXTALIGN), displaybind, bindable] HRESULT textAlign([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_TEXTDECORATION), displaybind, bindable] HRESULT textDecoration([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_DISPLAY), displaybind, bindable] HRESULT display([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_VISIBILITY), displaybind, bindable] HRESULT visibility([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_ZINDEX), displaybind, bindable] HRESULT zIndex([retval, out] VARIANT * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_LETTERSPACING), displaybind, bindable] HRESULT letterSpacing([retval, out] VARIANT * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_LINEHEIGHT), displaybind, bindable] HRESULT lineHeight([retval, out] VARIANT * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_TEXTINDENT), displaybind, bindable] HRESULT textIndent([retval, out] VARIANT * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_VERTICALALIGN), displaybind, bindable] HRESULT verticalAlign([retval, out] VARIANT * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_BACKGROUNDATTACHMENT), displaybind, bindable] HRESULT backgroundAttachment([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_MARGINTOP), displaybind, bindable] HRESULT marginTop([retval, out] VARIANT * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_MARGINRIGHT), displaybind, bindable] HRESULT marginRight([retval, out] VARIANT * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_MARGINBOTTOM), displaybind, bindable] HRESULT marginBottom([retval, out] VARIANT * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_MARGINLEFT), displaybind, bindable] HRESULT marginLeft([retval, out] VARIANT * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_CLEAR), displaybind, bindable] HRESULT clear([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_LISTSTYLETYPE), displaybind, bindable] HRESULT listStyleType([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_LISTSTYLEPOSITION), displaybind, bindable] HRESULT listStylePosition([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_LISTSTYLEIMAGE), displaybind, bindable] HRESULT listStyleImage([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_CLIPTOP), displaybind, bindable] HRESULT clipTop([retval, out] VARIANT * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_CLIPRIGHT), displaybind, bindable] HRESULT clipRight([retval, out] VARIANT * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_CLIPBOTTOM), displaybind, bindable] HRESULT clipBottom([retval, out] VARIANT * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_CLIPLEFT), displaybind, bindable] HRESULT clipLeft([retval, out] VARIANT * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_OVERFLOW), displaybind, bindable] HRESULT overflow([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_PAGEBREAKBEFORE), displaybind, bindable] HRESULT pageBreakBefore([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_PAGEBREAKAFTER), displaybind, bindable] HRESULT pageBreakAfter([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_CURSOR), displaybind, bindable] HRESULT cursor([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_TABLELAYOUT), displaybind, bindable] HRESULT tableLayout([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_BORDERCOLLAPSE), displaybind, bindable] HRESULT borderCollapse([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_DIRECTION), displaybind, bindable] HRESULT direction([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_BEHAVIOR), displaybind, bindable] HRESULT behavior([retval, out] BSTR * p);
    [id(DISPID_IHTMLCURRENTSTYLE_GETATTRIBUTE)] HRESULT getAttribute([in] BSTR strAttributeName,[defaultvalue(0), in] LONG lFlags,[retval, out] VARIANT* AttributeValue);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_UNICODEBIDI), displaybind, bindable] HRESULT unicodeBidi([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_RIGHT), displaybind, bindable] HRESULT right([retval, out] VARIANT * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_BOTTOM), displaybind, bindable] HRESULT bottom([retval, out] VARIANT * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_IMEMODE), displaybind, bindable] HRESULT imeMode([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_RUBYALIGN), displaybind, bindable] HRESULT rubyAlign([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_RUBYPOSITION), displaybind, bindable] HRESULT rubyPosition([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_RUBYOVERHANG), displaybind, bindable] HRESULT rubyOverhang([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_TEXTAUTOSPACE), displaybind, bindable] HRESULT textAutospace([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_LINEBREAK), displaybind, bindable] HRESULT lineBreak([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_WORDBREAK), displaybind, bindable] HRESULT wordBreak([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_TEXTJUSTIFY), displaybind, bindable] HRESULT textJustify([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_TEXTJUSTIFYTRIM), displaybind, bindable] HRESULT textJustifyTrim([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_TEXTKASHIDA), displaybind, bindable] HRESULT textKashida([retval, out] VARIANT * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_BLOCKDIRECTION), displaybind, bindable] HRESULT blockDirection([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_LAYOUTGRIDCHAR), displaybind, bindable] HRESULT layoutGridChar([retval, out] VARIANT * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_LAYOUTGRIDLINE), displaybind, bindable] HRESULT layoutGridLine([retval, out] VARIANT * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_LAYOUTGRIDMODE), displaybind, bindable] HRESULT layoutGridMode([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_LAYOUTGRIDTYPE), displaybind, bindable] HRESULT layoutGridType([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_BORDERSTYLE), displaybind, bindable] HRESULT borderStyle([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_BORDERCOLOR), displaybind, bindable] HRESULT borderColor([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_BORDERWIDTH), displaybind, bindable] HRESULT borderWidth([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_PADDING), displaybind, bindable] HRESULT padding([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_MARGIN), displaybind, bindable] HRESULT margin([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_ACCELERATOR), displaybind, bindable] HRESULT accelerator([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_OVERFLOWX), displaybind, bindable] HRESULT overflowX([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_OVERFLOWY), displaybind, bindable] HRESULT overflowY([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_TEXTTRANSFORM), displaybind, bindable] HRESULT textTransform([retval, out] BSTR * p);
};
[
    hidden,
    uuid(3050f557-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTMLCurrentStyle
{
properties:
methods:
    [propget, id(DISPID_IHTMLCURRENTSTYLE_POSITION), displaybind, bindable] BSTR position();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_STYLEFLOAT), displaybind, bindable] BSTR styleFloat();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_COLOR), displaybind, bindable] VARIANT color();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_BACKGROUNDCOLOR), displaybind, bindable] VARIANT backgroundColor();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_FONTFAMILY), displaybind, bindable] BSTR fontFamily();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_FONTSTYLE), displaybind, bindable] BSTR fontStyle();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_FONTVARIANT), displaybind, bindable, hidden] BSTR fontVariant();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_FONTWEIGHT), displaybind, bindable] VARIANT fontWeight();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_FONTSIZE), displaybind, bindable] VARIANT fontSize();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_BACKGROUNDIMAGE), displaybind, bindable] BSTR backgroundImage();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_BACKGROUNDPOSITIONX), displaybind, bindable] VARIANT backgroundPositionX();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_BACKGROUNDPOSITIONY), displaybind, bindable] VARIANT backgroundPositionY();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_BACKGROUNDREPEAT), displaybind, bindable] BSTR backgroundRepeat();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_BORDERLEFTCOLOR), displaybind, bindable] VARIANT borderLeftColor();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_BORDERTOPCOLOR), displaybind, bindable] VARIANT borderTopColor();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_BORDERRIGHTCOLOR), displaybind, bindable] VARIANT borderRightColor();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_BORDERBOTTOMCOLOR), displaybind, bindable] VARIANT borderBottomColor();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_BORDERTOPSTYLE), displaybind, bindable] BSTR borderTopStyle();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_BORDERRIGHTSTYLE), displaybind, bindable] BSTR borderRightStyle();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_BORDERBOTTOMSTYLE), displaybind, bindable] BSTR borderBottomStyle();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_BORDERLEFTSTYLE), displaybind, bindable] BSTR borderLeftStyle();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_BORDERTOPWIDTH), displaybind, bindable] VARIANT borderTopWidth();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_BORDERRIGHTWIDTH), displaybind, bindable] VARIANT borderRightWidth();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_BORDERBOTTOMWIDTH), displaybind, bindable] VARIANT borderBottomWidth();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_BORDERLEFTWIDTH), displaybind, bindable] VARIANT borderLeftWidth();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_LEFT), displaybind, bindable] VARIANT left();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_TOP), displaybind, bindable] VARIANT top();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_WIDTH), displaybind, bindable] VARIANT width();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_HEIGHT), displaybind, bindable] VARIANT height();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_PADDINGLEFT), displaybind, bindable] VARIANT paddingLeft();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_PADDINGTOP), displaybind, bindable] VARIANT paddingTop();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_PADDINGRIGHT), displaybind, bindable] VARIANT paddingRight();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_PADDINGBOTTOM), displaybind, bindable] VARIANT paddingBottom();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_TEXTALIGN), displaybind, bindable] BSTR textAlign();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_TEXTDECORATION), displaybind, bindable] BSTR textDecoration();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_DISPLAY), displaybind, bindable] BSTR display();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_VISIBILITY), displaybind, bindable] BSTR visibility();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_ZINDEX), displaybind, bindable] VARIANT zIndex();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_LETTERSPACING), displaybind, bindable] VARIANT letterSpacing();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_LINEHEIGHT), displaybind, bindable] VARIANT lineHeight();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_TEXTINDENT), displaybind, bindable] VARIANT textIndent();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_VERTICALALIGN), displaybind, bindable] VARIANT verticalAlign();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_BACKGROUNDATTACHMENT), displaybind, bindable] BSTR backgroundAttachment();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_MARGINTOP), displaybind, bindable] VARIANT marginTop();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_MARGINRIGHT), displaybind, bindable] VARIANT marginRight();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_MARGINBOTTOM), displaybind, bindable] VARIANT marginBottom();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_MARGINLEFT), displaybind, bindable] VARIANT marginLeft();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_CLEAR), displaybind, bindable] BSTR clear();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_LISTSTYLETYPE), displaybind, bindable] BSTR listStyleType();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_LISTSTYLEPOSITION), displaybind, bindable] BSTR listStylePosition();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_LISTSTYLEIMAGE), displaybind, bindable] BSTR listStyleImage();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_CLIPTOP), displaybind, bindable] VARIANT clipTop();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_CLIPRIGHT), displaybind, bindable] VARIANT clipRight();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_CLIPBOTTOM), displaybind, bindable] VARIANT clipBottom();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_CLIPLEFT), displaybind, bindable] VARIANT clipLeft();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_OVERFLOW), displaybind, bindable] BSTR overflow();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_PAGEBREAKBEFORE), displaybind, bindable] BSTR pageBreakBefore();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_PAGEBREAKAFTER), displaybind, bindable] BSTR pageBreakAfter();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_CURSOR), displaybind, bindable] BSTR cursor();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_TABLELAYOUT), displaybind, bindable] BSTR tableLayout();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_BORDERCOLLAPSE), displaybind, bindable] BSTR borderCollapse();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_DIRECTION), displaybind, bindable] BSTR direction();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_BEHAVIOR), displaybind, bindable] BSTR behavior();
    [id(DISPID_IHTMLCURRENTSTYLE_GETATTRIBUTE)] VARIANT getAttribute([in] BSTR strAttributeName,[defaultvalue(0), in] LONG lFlags);
    [propget, id(DISPID_IHTMLCURRENTSTYLE_UNICODEBIDI), displaybind, bindable] BSTR unicodeBidi();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_RIGHT), displaybind, bindable] VARIANT right();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_BOTTOM), displaybind, bindable] VARIANT bottom();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_IMEMODE), displaybind, bindable] BSTR imeMode();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_RUBYALIGN), displaybind, bindable] BSTR rubyAlign();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_RUBYPOSITION), displaybind, bindable] BSTR rubyPosition();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_RUBYOVERHANG), displaybind, bindable] BSTR rubyOverhang();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_TEXTAUTOSPACE), displaybind, bindable] BSTR textAutospace();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_LINEBREAK), displaybind, bindable] BSTR lineBreak();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_WORDBREAK), displaybind, bindable] BSTR wordBreak();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_TEXTJUSTIFY), displaybind, bindable] BSTR textJustify();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_TEXTJUSTIFYTRIM), displaybind, bindable] BSTR textJustifyTrim();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_TEXTKASHIDA), displaybind, bindable] VARIANT textKashida();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_BLOCKDIRECTION), displaybind, bindable] BSTR blockDirection();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_LAYOUTGRIDCHAR), displaybind, bindable] VARIANT layoutGridChar();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_LAYOUTGRIDLINE), displaybind, bindable] VARIANT layoutGridLine();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_LAYOUTGRIDMODE), displaybind, bindable] BSTR layoutGridMode();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_LAYOUTGRIDTYPE), displaybind, bindable] BSTR layoutGridType();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_BORDERSTYLE), displaybind, bindable] BSTR borderStyle();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_BORDERCOLOR), displaybind, bindable] BSTR borderColor();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_BORDERWIDTH), displaybind, bindable] BSTR borderWidth();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_PADDING), displaybind, bindable] BSTR padding();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_MARGIN), displaybind, bindable] BSTR margin();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_ACCELERATOR), displaybind, bindable] BSTR accelerator();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_OVERFLOWX), displaybind, bindable] BSTR overflowX();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_OVERFLOWY), displaybind, bindable] BSTR overflowY();
    [propget, id(DISPID_IHTMLCURRENTSTYLE_TEXTTRANSFORM), displaybind, bindable] BSTR textTransform();
};
[
    uuid(3050f3dc-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLCurrentStyle
{
    [default]           dispinterface DispHTMLCurrentStyle;
                        interface IHTMLCurrentStyle;
};
cpp_quote("EXTERN_C const GUID CLSID_CCurrentStyle;")
interface IHTMLElement;
[
    odl,
    oleautomation,
    dual,
    uuid(3050f3ee-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLFiltersCollection : IDispatch
{
    [propget, id(DISPID_IHTMLFILTERSCOLLECTION_LENGTH)] HRESULT length([retval, out] long * p);
    [propget, id(DISPID_IHTMLFILTERSCOLLECTION__NEWENUM), hidden, restricted] HRESULT _newEnum([retval, out] IUnknown* * p);
    [id(DISPID_IHTMLFILTERSCOLLECTION_ITEM)] HRESULT item([in] VARIANT* pvarIndex,[retval, out] VARIANT* pvarResult);
};
[
    uuid(3050f3ef-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLFiltersCollection
{
    [default]           interface IHTMLFiltersCollection;
};
cpp_quote("EXTERN_C const GUID CLSID_CFilterArray;")
[
    odl,
    oleautomation,
    dual,
    uuid(3050f4a3-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLRect : IDispatch
{
    [propput, id(DISPID_IHTMLRECT_LEFT)] HRESULT left([in] long v);
    [propget, id(DISPID_IHTMLRECT_LEFT)] HRESULT left([retval, out] long * p);
    [propput, id(DISPID_IHTMLRECT_TOP)] HRESULT top([in] long v);
    [propget, id(DISPID_IHTMLRECT_TOP)] HRESULT top([retval, out] long * p);
    [propput, id(DISPID_IHTMLRECT_RIGHT)] HRESULT right([in] long v);
    [propget, id(DISPID_IHTMLRECT_RIGHT)] HRESULT right([retval, out] long * p);
    [propput, id(DISPID_IHTMLRECT_BOTTOM)] HRESULT bottom([in] long v);
    [propget, id(DISPID_IHTMLRECT_BOTTOM)] HRESULT bottom([retval, out] long * p);
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f4a4-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLRectCollection : IDispatch
{
    [propget, id(DISPID_IHTMLRECTCOLLECTION_LENGTH)] HRESULT length([retval, out] long * p);
    [propget, id(DISPID_IHTMLRECTCOLLECTION__NEWENUM), hidden, restricted] HRESULT _newEnum([retval, out] IUnknown* * p);
    [id(DISPID_IHTMLRECTCOLLECTION_ITEM)] HRESULT item([in] VARIANT* pvarIndex,[retval, out] VARIANT* pvarResult);
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f5da-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLDOMNode : IDispatch
{
    [propget, id(DISPID_IHTMLDOMNODE_NODETYPE)] HRESULT nodeType([retval, out] long * p);
    [propget, id(DISPID_IHTMLDOMNODE_PARENTNODE)] HRESULT parentNode([retval, out] IHTMLDOMNode* * p);
    [id(DISPID_IHTMLDOMNODE_HASCHILDNODES)] HRESULT hasChildNodes([retval, out] VARIANT_BOOL* fChildren);
    [propget, id(DISPID_IHTMLDOMNODE_CHILDNODES)] HRESULT childNodes([retval, out] IDispatch* * p);
    [propget, id(DISPID_IHTMLDOMNODE_ATTRIBUTES)] HRESULT attributes([retval, out] IDispatch* * p);
    [id(DISPID_IHTMLDOMNODE_INSERTBEFORE)] HRESULT insertBefore([in] IHTMLDOMNode* newChild,[optional, in] VARIANT refChild,[retval, out] IHTMLDOMNode** node);
    [id(DISPID_IHTMLDOMNODE_REMOVECHILD)] HRESULT removeChild([in] IHTMLDOMNode* oldChild,[retval, out] IHTMLDOMNode** node);
    [id(DISPID_IHTMLDOMNODE_REPLACECHILD)] HRESULT replaceChild([in] IHTMLDOMNode* newChild,[in] IHTMLDOMNode* oldChild,[retval, out] IHTMLDOMNode** node);
    [id(DISPID_IHTMLDOMNODE_CLONENODE)] HRESULT cloneNode([in] VARIANT_BOOL fDeep,[retval, out] IHTMLDOMNode** clonedNode);
    [id(DISPID_IHTMLDOMNODE_REMOVENODE)] HRESULT removeNode([defaultvalue(0), in] VARIANT_BOOL fDeep,[retval, out] IHTMLDOMNode** removed);
    [id(DISPID_IHTMLDOMNODE_SWAPNODE)] HRESULT swapNode([in] IHTMLDOMNode* otherNode,[retval, out] IHTMLDOMNode** swappedNode);
    [id(DISPID_IHTMLDOMNODE_REPLACENODE)] HRESULT replaceNode([in] IHTMLDOMNode* replacement,[retval, out] IHTMLDOMNode** replaced);
    [id(DISPID_IHTMLDOMNODE_APPENDCHILD)] HRESULT appendChild([in] IHTMLDOMNode* newChild,[retval, out] IHTMLDOMNode** node);
    [propget, id(DISPID_IHTMLDOMNODE_NODENAME)] HRESULT nodeName([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLDOMNODE_NODEVALUE)] HRESULT nodeValue([in] VARIANT v);
    [propget, id(DISPID_IHTMLDOMNODE_NODEVALUE)] HRESULT nodeValue([retval, out] VARIANT * p);
    [propget, id(DISPID_IHTMLDOMNODE_FIRSTCHILD)] HRESULT firstChild([retval, out] IHTMLDOMNode* * p);
    [propget, id(DISPID_IHTMLDOMNODE_LASTCHILD)] HRESULT lastChild([retval, out] IHTMLDOMNode* * p);
    [propget, id(DISPID_IHTMLDOMNODE_PREVIOUSSIBLING)] HRESULT previousSibling([retval, out] IHTMLDOMNode* * p);
    [propget, id(DISPID_IHTMLDOMNODE_NEXTSIBLING)] HRESULT nextSibling([retval, out] IHTMLDOMNode* * p);
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f4b0-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLDOMAttribute : IDispatch
{
    [propget, id(DISPID_IHTMLDOMATTRIBUTE_NODENAME)] HRESULT nodeName([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLDOMATTRIBUTE_NODEVALUE)] HRESULT nodeValue([in] VARIANT v);
    [propget, id(DISPID_IHTMLDOMATTRIBUTE_NODEVALUE)] HRESULT nodeValue([retval, out] VARIANT * p);
    [propget, id(DISPID_IHTMLDOMATTRIBUTE_SPECIFIED)] HRESULT specified([retval, out] VARIANT_BOOL * p);
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f4b1-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLDOMTextNode : IDispatch
{
    [propput, id(DISPID_IHTMLDOMTEXTNODE_DATA)] HRESULT data([in] BSTR v);
    [propget, id(DISPID_IHTMLDOMTEXTNODE_DATA)] HRESULT data([retval, out] BSTR * p);
    [id(DISPID_IHTMLDOMTEXTNODE_TOSTRING)] HRESULT toString([retval, out] BSTR* String);
    [propget, id(DISPID_IHTMLDOMTEXTNODE_LENGTH)] HRESULT length([retval, out] long * p);
    [id(DISPID_IHTMLDOMTEXTNODE_SPLITTEXT)] HRESULT splitText([in] long offset,[retval, out] IHTMLDOMNode** pRetNode);
};
[
    hidden,
    uuid(3050f564-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTMLDOMAttribute
{
properties:
methods:
    [propget, id(DISPID_IHTMLDOMATTRIBUTE_NODENAME)] BSTR nodeName();
    [propput, id(DISPID_IHTMLDOMATTRIBUTE_NODEVALUE)] void nodeValue(VARIANT v);
    [propget, id(DISPID_IHTMLDOMATTRIBUTE_NODEVALUE)] VARIANT nodeValue();
    [propget, id(DISPID_IHTMLDOMATTRIBUTE_SPECIFIED)] VARIANT_BOOL specified();
};
[
    uuid(3050f4b2-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLDOMAttribute
{
    [default]           dispinterface DispHTMLDOMAttribute;
                        interface IHTMLDOMAttribute;
};
cpp_quote("EXTERN_C const GUID CLSID_CAttribute;")
[
    hidden,
    uuid(3050f565-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTMLDOMTextNode
{
properties:
methods:
    [propput, id(DISPID_IHTMLDOMTEXTNODE_DATA)] void data(BSTR v);
    [propget, id(DISPID_IHTMLDOMTEXTNODE_DATA)] BSTR data();
    [id(DISPID_IHTMLDOMTEXTNODE_TOSTRING)] BSTR toString();
    [propget, id(DISPID_IHTMLDOMTEXTNODE_LENGTH)] long length();
    [id(DISPID_IHTMLDOMTEXTNODE_SPLITTEXT)] IHTMLDOMNode* splitText([in] long offset);
    [propget, id(DISPID_IHTMLDOMNODE_NODETYPE)] long nodeType();
    [propget, id(DISPID_IHTMLDOMNODE_PARENTNODE)] IHTMLDOMNode* parentNode();
    [id(DISPID_IHTMLDOMNODE_HASCHILDNODES)] VARIANT_BOOL hasChildNodes();
    [propget, id(DISPID_IHTMLDOMNODE_CHILDNODES)] IDispatch* childNodes();
    [propget, id(DISPID_IHTMLDOMNODE_ATTRIBUTES)] IDispatch* attributes();
    [id(DISPID_IHTMLDOMNODE_INSERTBEFORE)] IHTMLDOMNode* insertBefore([in] IHTMLDOMNode* newChild,[optional, in] VARIANT refChild);
    [id(DISPID_IHTMLDOMNODE_REMOVECHILD)] IHTMLDOMNode* removeChild([in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_REPLACECHILD)] IHTMLDOMNode* replaceChild([in] IHTMLDOMNode* newChild,[in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_CLONENODE)] IHTMLDOMNode* cloneNode([in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_REMOVENODE)] IHTMLDOMNode* removeNode([defaultvalue(0), in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_SWAPNODE)] IHTMLDOMNode* swapNode([in] IHTMLDOMNode* otherNode);
    [id(DISPID_IHTMLDOMNODE_REPLACENODE)] IHTMLDOMNode* replaceNode([in] IHTMLDOMNode* replacement);
    [id(DISPID_IHTMLDOMNODE_APPENDCHILD)] IHTMLDOMNode* appendChild([in] IHTMLDOMNode* newChild);
    [propget, id(DISPID_IHTMLDOMNODE_NODENAME)] BSTR nodeName();
    [propput, id(DISPID_IHTMLDOMNODE_NODEVALUE)] void nodeValue(VARIANT v);
    [propget, id(DISPID_IHTMLDOMNODE_NODEVALUE)] VARIANT nodeValue();
    [propget, id(DISPID_IHTMLDOMNODE_FIRSTCHILD)] IHTMLDOMNode* firstChild();
    [propget, id(DISPID_IHTMLDOMNODE_LASTCHILD)] IHTMLDOMNode* lastChild();
    [propget, id(DISPID_IHTMLDOMNODE_PREVIOUSSIBLING)] IHTMLDOMNode* previousSibling();
    [propget, id(DISPID_IHTMLDOMNODE_NEXTSIBLING)] IHTMLDOMNode* nextSibling();
};
[
    uuid(3050f4ba-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLDOMTextNode
{
    [default]           dispinterface DispHTMLDOMTextNode;
                        interface IHTMLDOMTextNode;
                        interface IHTMLDOMNode;
};
cpp_quote("EXTERN_C const GUID CLSID_CDOMTextNode;")
[
    odl,
    oleautomation,
    dual,
    uuid(3050f4c3-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLAttributeCollection : IDispatch
{
    [propget, id(DISPID_IHTMLATTRIBUTECOLLECTION_LENGTH)] HRESULT length([retval, out] long * p);
    [propget, id(DISPID_IHTMLATTRIBUTECOLLECTION__NEWENUM), hidden, restricted] HRESULT _newEnum([retval, out] IUnknown* * p);
    [id(DISPID_IHTMLATTRIBUTECOLLECTION_ITEM)] HRESULT item([optional, in] VARIANT* name,[retval, out] IDispatch** pdisp);
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f5ab-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLDOMChildrenCollection : IDispatch
{
    [propget, id(DISPID_IHTMLDOMCHILDRENCOLLECTION_LENGTH)] HRESULT length([retval, out] long * p);
    [propget, id(DISPID_IHTMLDOMCHILDRENCOLLECTION__NEWENUM), hidden, restricted] HRESULT _newEnum([retval, out] IUnknown* * p);
    [id(DISPID_IHTMLDOMCHILDRENCOLLECTION_ITEM)] HRESULT item([in] long index,[retval, out] IDispatch** ppItem);
};
[
    hidden,
    uuid(3050f56c-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTMLAttributeCollection
{
properties:
methods:
    [propget, id(DISPID_IHTMLATTRIBUTECOLLECTION_LENGTH)] long length();
    [propget, id(DISPID_IHTMLATTRIBUTECOLLECTION__NEWENUM), hidden, restricted] IUnknown* _newEnum();
    [id(DISPID_IHTMLATTRIBUTECOLLECTION_ITEM)] IDispatch* item([optional, in] VARIANT* name);
};
[
    uuid(3050f4cc-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLAttributeCollection
{
    [default]           dispinterface DispHTMLAttributeCollection;
                        interface IHTMLAttributeCollection;
};
cpp_quote("EXTERN_C const GUID CLSID_CAttrCollectionator;")
[
    hidden,
    uuid(3050f577-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispDOMChildrenCollection
{
properties:
methods:
    [propget, id(DISPID_IHTMLDOMCHILDRENCOLLECTION_LENGTH)] long length();
    [propget, id(DISPID_IHTMLDOMCHILDRENCOLLECTION__NEWENUM), hidden, restricted] IUnknown* _newEnum();
    [id(DISPID_IHTMLDOMCHILDRENCOLLECTION_ITEM)] IDispatch* item([in] long index);
};
[
    uuid(3050f5aa-98b5-11cf-bb82-00aa00bdce0b)
]
coclass DOMChildrenCollection
{
    [default]           dispinterface DispDOMChildrenCollection;
                        interface IHTMLDOMChildrenCollection;
};
cpp_quote("EXTERN_C const GUID CLSID_CDOMChildrenCollection;")
[
    hidden,
    uuid(3050f60f-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface HTMLElementEvents2
{
properties:
methods:
    [id(DISPID_HTMLELEMENTEVENTS2_ONHELP)] VARIANT_BOOL onhelp([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCLICK)] VARIANT_BOOL onclick([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDBLCLICK)] VARIANT_BOOL ondblclick([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONKEYPRESS)] VARIANT_BOOL onkeypress([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONKEYDOWN)] void onkeydown([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONKEYUP)] void onkeyup([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEOUT)] void onmouseout([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEOVER)] void onmouseover([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEMOVE)] void onmousemove([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEDOWN)] void onmousedown([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEUP)] void onmouseup([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONSELECTSTART)] VARIANT_BOOL onselectstart([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONFILTERCHANGE)] void onfilterchange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGSTART)] VARIANT_BOOL ondragstart([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFOREUPDATE)] VARIANT_BOOL onbeforeupdate([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONAFTERUPDATE)] void onafterupdate([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONERRORUPDATE)] VARIANT_BOOL onerrorupdate([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWEXIT)] VARIANT_BOOL onrowexit([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWENTER)] void onrowenter([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDATASETCHANGED)] void ondatasetchanged([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDATAAVAILABLE)] void ondataavailable([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDATASETCOMPLETE)] void ondatasetcomplete([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONLOSECAPTURE)] void onlosecapture([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONPROPERTYCHANGE)] void onpropertychange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONSCROLL)] void onscroll([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONFOCUS)] void onfocus([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBLUR)] void onblur([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONRESIZE)] void onresize([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAG)] VARIANT_BOOL ondrag([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGEND)] void ondragend([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGENTER)] VARIANT_BOOL ondragenter([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGOVER)] VARIANT_BOOL ondragover([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGLEAVE)] void ondragleave([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDROP)] VARIANT_BOOL ondrop([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFORECUT)] VARIANT_BOOL onbeforecut([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCUT)] VARIANT_BOOL oncut([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFORECOPY)] VARIANT_BOOL onbeforecopy([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCOPY)] VARIANT_BOOL oncopy([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFOREPASTE)] VARIANT_BOOL onbeforepaste([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONPASTE)] VARIANT_BOOL onpaste([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCONTEXTMENU)] VARIANT_BOOL oncontextmenu([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWSDELETE)] void onrowsdelete([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWSINSERTED)] void onrowsinserted([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCELLCHANGE)] void oncellchange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONREADYSTATECHANGE)] void onreadystatechange([in] IHTMLEventObj* pEvtObj);
};
[
    hidden,
    uuid(3050f33c-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface HTMLElementEvents
{
properties:
methods:
    [id(DISPID_HTMLELEMENTEVENTS_ONHELP)] VARIANT_BOOL onhelp();
    [id(DISPID_HTMLELEMENTEVENTS_ONCLICK)] VARIANT_BOOL onclick();
    [id(DISPID_HTMLELEMENTEVENTS_ONDBLCLICK)] VARIANT_BOOL ondblclick();
    [id(DISPID_HTMLELEMENTEVENTS_ONKEYPRESS)] VARIANT_BOOL onkeypress();
    [id(DISPID_HTMLELEMENTEVENTS_ONKEYDOWN)] void onkeydown();
    [id(DISPID_HTMLELEMENTEVENTS_ONKEYUP)] void onkeyup();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEOUT)] void onmouseout();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEOVER)] void onmouseover();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEMOVE)] void onmousemove();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEDOWN)] void onmousedown();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEUP)] void onmouseup();
    [id(DISPID_HTMLELEMENTEVENTS_ONSELECTSTART)] VARIANT_BOOL onselectstart();
    [id(DISPID_HTMLELEMENTEVENTS_ONFILTERCHANGE)] void onfilterchange();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGSTART)] VARIANT_BOOL ondragstart();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREUPDATE)] VARIANT_BOOL onbeforeupdate();
    [id(DISPID_HTMLELEMENTEVENTS_ONAFTERUPDATE)] void onafterupdate();
    [id(DISPID_HTMLELEMENTEVENTS_ONERRORUPDATE)] VARIANT_BOOL onerrorupdate();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWEXIT)] VARIANT_BOOL onrowexit();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWENTER)] void onrowenter();
    [id(DISPID_HTMLELEMENTEVENTS_ONDATASETCHANGED)] void ondatasetchanged();
    [id(DISPID_HTMLELEMENTEVENTS_ONDATAAVAILABLE)] void ondataavailable();
    [id(DISPID_HTMLELEMENTEVENTS_ONDATASETCOMPLETE)] void ondatasetcomplete();
    [id(DISPID_HTMLELEMENTEVENTS_ONLOSECAPTURE)] void onlosecapture();
    [id(DISPID_HTMLELEMENTEVENTS_ONPROPERTYCHANGE)] void onpropertychange();
    [id(DISPID_HTMLELEMENTEVENTS_ONSCROLL)] void onscroll();
    [id(DISPID_HTMLELEMENTEVENTS_ONFOCUS)] void onfocus();
    [id(DISPID_HTMLELEMENTEVENTS_ONBLUR)] void onblur();
    [id(DISPID_HTMLELEMENTEVENTS_ONRESIZE)] void onresize();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAG)] VARIANT_BOOL ondrag();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGEND)] void ondragend();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGENTER)] VARIANT_BOOL ondragenter();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGOVER)] VARIANT_BOOL ondragover();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGLEAVE)] void ondragleave();
    [id(DISPID_HTMLELEMENTEVENTS_ONDROP)] VARIANT_BOOL ondrop();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFORECUT)] VARIANT_BOOL onbeforecut();
    [id(DISPID_HTMLELEMENTEVENTS_ONCUT)] VARIANT_BOOL oncut();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFORECOPY)] VARIANT_BOOL onbeforecopy();
    [id(DISPID_HTMLELEMENTEVENTS_ONCOPY)] VARIANT_BOOL oncopy();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREPASTE)] VARIANT_BOOL onbeforepaste();
    [id(DISPID_HTMLELEMENTEVENTS_ONPASTE)] VARIANT_BOOL onpaste();
    [id(DISPID_HTMLELEMENTEVENTS_ONCONTEXTMENU)] VARIANT_BOOL oncontextmenu();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWSDELETE)] void onrowsdelete();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWSINSERTED)] void onrowsinserted();
    [id(DISPID_HTMLELEMENTEVENTS_ONCELLCHANGE)] void oncellchange();
    [id(DISPID_HTMLELEMENTEVENTS_ONREADYSTATECHANGE)] void onreadystatechange();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREEDITFOCUS)] void onbeforeeditfocus();
};
typedef enum _htmlListType
{
    htmlListTypeNotSet = 0,
    htmlListTypeLargeAlpha = 1,
    htmlListTypeSmallAlpha = 2,
    htmlListTypeLargeRoman = 3,
    htmlListTypeSmallRoman = 4,
    htmlListTypeNumbers = 5,
    htmlListTypeDisc = 6,
    htmlListTypeCircle = 7,
    htmlListTypeSquare = 8,
    htmlListType_Max = 2147483647L
} htmlListType;

typedef enum _htmlMethod
{
    htmlMethodNotSet = 0,
    htmlMethodGet = 1,
    htmlMethodPost = 2,
    htmlMethod_Max = 2147483647L
} htmlMethod;

typedef enum _htmlWrap
{
    htmlWrapOff = 1,
    htmlWrapSoft = 2,
    htmlWrapHard = 3,
    htmlWrap_Max = 2147483647L
} htmlWrap;

typedef enum _htmlDir
{
    htmlDirNotSet = 0,
    htmlDirLeftToRight = 1,
    htmlDirRightToLeft = 2,
    htmlDir_Max = 2147483647L
} htmlDir;

typedef enum _htmlInput
{
    htmlInputNotSet = 0,
    htmlInputButton = 1,
    htmlInputCheckbox = 2,
    htmlInputFile = 3,
    htmlInputHidden = 4,
    htmlInputImage = 5,
    htmlInputPassword = 6,
    htmlInputRadio = 7,
    htmlInputReset = 8,
    htmlInputSelectOne = 9,
    htmlInputSelectMultiple = 10,
    htmlInputSubmit = 11,
    htmlInputText = 12,
    htmlInputTextarea = 13,
    htmlInputRichtext = 14,
    htmlInput_Max = 2147483647L
} htmlInput;

typedef enum _htmlEncoding
{
    htmlEncodingURL = 0,
    htmlEncodingMultipart = 1,
    htmlEncodingText = 2,
    htmlEncoding_Max = 2147483647L
} htmlEncoding;

typedef enum _htmlAdjacency
{
    htmlAdjacencyBeforeBegin = 1,
    htmlAdjacencyAfterBegin = 2,
    htmlAdjacencyBeforeEnd = 3,
    htmlAdjacencyAfterEnd = 4,
    htmlAdjacency_Max = 2147483647L
} htmlAdjacency;

typedef enum _htmlTabIndex
{
    htmlTabIndexNotSet = -32768,
    htmlTabIndex_Max = 2147483647L
} htmlTabIndex;

typedef enum _htmlComponent
{
    htmlComponentClient = 0,
    htmlComponentSbLeft = 1,
    htmlComponentSbPageLeft = 2,
    htmlComponentSbHThumb = 3,
    htmlComponentSbPageRight = 4,
    htmlComponentSbRight = 5,
    htmlComponentSbUp = 6,
    htmlComponentSbPageUp = 7,
    htmlComponentSbVThumb = 8,
    htmlComponentSbPageDown = 9,
    htmlComponentSbDown = 10,
    htmlComponentSbLeft2 = 11,
    htmlComponentSbPageLeft2 = 12,
    htmlComponentSbRight2 = 13,
    htmlComponentSbPageRight2 = 14,
    htmlComponentSbUp2 = 15,
    htmlComponentSbPageUp2 = 16,
    htmlComponentSbDown2 = 17,
    htmlComponentSbPageDown2 = 18,
    htmlComponentSbTop = 19,
    htmlComponentSbBottom = 20,
    htmlComponentOutside = 21,
    htmlComponentGHTopLeft = 22,
    htmlComponentGHLeft = 23,
    htmlComponentGHTop = 24,
    htmlComponentGHBottomLeft = 25,
    htmlComponentGHTopRight = 26,
    htmlComponentGHBottom = 27,
    htmlComponentGHRight = 28,
    htmlComponentGHBottomRight = 29,
    htmlComponent_Max = 2147483647L
} htmlComponent;

typedef enum _htmlApplyLocation
{
    htmlApplyLocationInside = 0,
    htmlApplyLocationOutside = 1,
    htmlApplyLocation_Max = 2147483647L
} htmlApplyLocation;

interface IHTMLEventObj;
interface IHTMLElementCollection;
[
    odl,
    oleautomation,
    dual,
    uuid(3050f1ff-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLElement : IDispatch
{
    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)] HRESULT setAttribute([in] BSTR strAttributeName,[in] VARIANT AttributeValue,[defaultvalue(1), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)] HRESULT getAttribute([in] BSTR strAttributeName,[defaultvalue(0), in] LONG lFlags,[retval, out] VARIANT* AttributeValue);
    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)] HRESULT removeAttribute([in] BSTR strAttributeName,[defaultvalue(1), in] LONG lFlags,[retval, out] VARIANT_BOOL* pfSuccess);
    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] HRESULT className([in] BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] HRESULT className([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLELEMENT_ID), bindable] HRESULT id([in] BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_ID), bindable] HRESULT id([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)] HRESULT tagName([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)] HRESULT parentElement([retval, out] IHTMLElement* * p);
    [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable] HRESULT style([retval, out] IHTMLStyle* * p);
    [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] HRESULT onhelp([in] VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] HRESULT onhelp([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] HRESULT onclick([in] VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] HRESULT onclick([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] HRESULT ondblclick([in] VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] HRESULT ondblclick([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] HRESULT onkeydown([in] VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] HRESULT onkeydown([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] HRESULT onkeyup([in] VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] HRESULT onkeyup([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] HRESULT onkeypress([in] VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] HRESULT onkeypress([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] HRESULT onmouseout([in] VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] HRESULT onmouseout([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] HRESULT onmouseover([in] VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] HRESULT onmouseover([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] HRESULT onmousemove([in] VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] HRESULT onmousemove([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] HRESULT onmousedown([in] VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] HRESULT onmousedown([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] HRESULT onmouseup([in] VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] HRESULT onmouseup([retval, out] VARIANT * p);
    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)] HRESULT document([retval, out] IDispatch* * p);
    [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] HRESULT title([in] BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] HRESULT title([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] HRESULT language([in] BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] HRESULT language([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] HRESULT onselectstart([in] VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] HRESULT onselectstart([retval, out] VARIANT * p);
    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)] HRESULT scrollIntoView([optional, in] VARIANT varargStart);
    [id(DISPID_IHTMLELEMENT_CONTAINS)] HRESULT contains([in] IHTMLElement* pChild,[retval, out] VARIANT_BOOL* pfResult);
    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable] HRESULT sourceIndex([retval, out] long * p);
    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)] HRESULT recordNumber([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLELEMENT_LANG)] HRESULT lang([in] BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANG)] HRESULT lang([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)] HRESULT offsetLeft([retval, out] long * p);
    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)] HRESULT offsetTop([retval, out] long * p);
    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)] HRESULT offsetWidth([retval, out] long * p);
    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)] HRESULT offsetHeight([retval, out] long * p);
    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)] HRESULT offsetParent([retval, out] IHTMLElement* * p);
    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)] HRESULT innerHTML([in] BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)] HRESULT innerHTML([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)] HRESULT innerText([in] BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)] HRESULT innerText([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)] HRESULT outerHTML([in] BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)] HRESULT outerHTML([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)] HRESULT outerText([in] BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)] HRESULT outerText([retval, out] BSTR * p);
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)] HRESULT insertAdjacentHTML([in] BSTR where,[in] BSTR html);
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)] HRESULT insertAdjacentText([in] BSTR where,[in] BSTR text);
    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)] HRESULT parentTextEdit([retval, out] IHTMLElement* * p);
    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)] HRESULT isTextEdit([retval, out] VARIANT_BOOL * p);
    [id(DISPID_IHTMLELEMENT_CLICK)] HRESULT click();
    [propget, id(DISPID_IHTMLELEMENT_FILTERS)] HRESULT filters([retval, out] IHTMLFiltersCollection* * p);
    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] HRESULT ondragstart([in] VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] HRESULT ondragstart([retval, out] VARIANT * p);
    [id(DISPID_IHTMLELEMENT_TOSTRING)] HRESULT toString([retval, out] BSTR* String);
    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] HRESULT onbeforeupdate([in] VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] HRESULT onbeforeupdate([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] HRESULT onafterupdate([in] VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] HRESULT onafterupdate([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] HRESULT onerrorupdate([in] VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] HRESULT onerrorupdate([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] HRESULT onrowexit([in] VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] HRESULT onrowexit([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] HRESULT onrowenter([in] VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] HRESULT onrowenter([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] HRESULT ondatasetchanged([in] VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] HRESULT ondatasetchanged([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] HRESULT ondataavailable([in] VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] HRESULT ondataavailable([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] HRESULT ondatasetcomplete([in] VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] HRESULT ondatasetcomplete([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] HRESULT onfilterchange([in] VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] HRESULT onfilterchange([retval, out] VARIANT * p);
    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)] HRESULT children([retval, out] IDispatch* * p);
    [propget, id(DISPID_IHTMLELEMENT_ALL)] HRESULT all([retval, out] IDispatch* * p);
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f434-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLElement2 : IDispatch
{
    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)] HRESULT scopeName([retval, out] BSTR * p);
    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)] HRESULT setCapture([defaultvalue(-1), in] VARIANT_BOOL containerCapture);
    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)] HRESULT releaseCapture();
    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] HRESULT onlosecapture([in] VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] HRESULT onlosecapture([retval, out] VARIANT * p);
    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)] HRESULT componentFromPoint([in] long x,[in] long y,[retval, out] BSTR* component);
    [id(DISPID_IHTMLELEMENT2_DOSCROLL)] HRESULT doScroll([optional, in] VARIANT component);
    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] HRESULT onscroll([in] VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] HRESULT onscroll([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] HRESULT ondrag([in] VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] HRESULT ondrag([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] HRESULT ondragend([in] VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] HRESULT ondragend([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] HRESULT ondragenter([in] VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] HRESULT ondragenter([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] HRESULT ondragover([in] VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] HRESULT ondragover([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] HRESULT ondragleave([in] VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] HRESULT ondragleave([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] HRESULT ondrop([in] VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] HRESULT ondrop([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] HRESULT onbeforecut([in] VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] HRESULT onbeforecut([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] HRESULT oncut([in] VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] HRESULT oncut([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] HRESULT onbeforecopy([in] VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] HRESULT onbeforecopy([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] HRESULT oncopy([in] VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] HRESULT oncopy([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] HRESULT onbeforepaste([in] VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] HRESULT onbeforepaste([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] HRESULT onpaste([in] VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] HRESULT onpaste([retval, out] VARIANT * p);
    [propget, id(DISPID_IHTMLELEMENT2_CURRENTSTYLE), nonbrowsable] HRESULT currentStyle([retval, out] IHTMLCurrentStyle* * p);
    [propput, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] HRESULT onpropertychange([in] VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] HRESULT onpropertychange([retval, out] VARIANT * p);
    [id(DISPID_IHTMLELEMENT2_GETCLIENTRECTS)] HRESULT getClientRects([retval, out] IHTMLRectCollection** pRectCol);
    [id(DISPID_IHTMLELEMENT2_GETBOUNDINGCLIENTRECT)] HRESULT getBoundingClientRect([retval, out] IHTMLRect** pRect);
    [id(DISPID_IHTMLELEMENT2_SETEXPRESSION)] HRESULT setExpression([in] BSTR propname,[in] BSTR expression,[defaultvalue(""), in] BSTR language);
    [id(DISPID_IHTMLELEMENT2_GETEXPRESSION)] HRESULT getExpression([in] BSTR propname,[retval, out] VARIANT* expression);
    [id(DISPID_IHTMLELEMENT2_REMOVEEXPRESSION)] HRESULT removeExpression([in] BSTR propname,[retval, out] VARIANT_BOOL* pfSuccess);
    [propput, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] HRESULT tabIndex([in] short v);
    [propget, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] HRESULT tabIndex([retval, out] short * p);
    [id(DISPID_IHTMLELEMENT2_FOCUS)] HRESULT focus();
    [propput, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] HRESULT accessKey([in] BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] HRESULT accessKey([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] HRESULT onblur([in] VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] HRESULT onblur([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] HRESULT onfocus([in] VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] HRESULT onfocus([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] HRESULT onresize([in] VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] HRESULT onresize([retval, out] VARIANT * p);
    [id(DISPID_IHTMLELEMENT2_BLUR)] HRESULT blur();
    [id(DISPID_IHTMLELEMENT2_ADDFILTER)] HRESULT addFilter([in] IUnknown* pUnk);
    [id(DISPID_IHTMLELEMENT2_REMOVEFILTER)] HRESULT removeFilter([in] IUnknown* pUnk);
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTHEIGHT), displaybind, bindable] HRESULT clientHeight([retval, out] long * p);
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTWIDTH), displaybind, bindable] HRESULT clientWidth([retval, out] long * p);
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTTOP), displaybind, bindable] HRESULT clientTop([retval, out] long * p);
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTLEFT), displaybind, bindable] HRESULT clientLeft([retval, out] long * p);
    [id(DISPID_IHTMLELEMENT2_ATTACHEVENT)] HRESULT attachEvent([in] BSTR event,[in] IDispatch* pDisp,[retval, out] VARIANT_BOOL* pfResult);
    [id(DISPID_IHTMLELEMENT2_DETACHEVENT)] HRESULT detachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATE)] HRESULT readyState([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] HRESULT onreadystatechange([in] VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] HRESULT onreadystatechange([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] HRESULT onrowsdelete([in] VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] HRESULT onrowsdelete([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] HRESULT onrowsinserted([in] VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] HRESULT onrowsinserted([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] HRESULT oncellchange([in] VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] HRESULT oncellchange([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] HRESULT dir([in] BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] HRESULT dir([retval, out] BSTR * p);
    [id(DISPID_IHTMLELEMENT2_CREATECONTROLRANGE)] HRESULT createControlRange([retval, out] IDispatch** range);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLHEIGHT), displaybind, bindable] HRESULT scrollHeight([retval, out] long * p);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLWIDTH), displaybind, bindable] HRESULT scrollWidth([retval, out] long * p);
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] HRESULT scrollTop([in] long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] HRESULT scrollTop([retval, out] long * p);
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] HRESULT scrollLeft([in] long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] HRESULT scrollLeft([retval, out] long * p);
    [id(DISPID_IHTMLELEMENT2_CLEARATTRIBUTES)] HRESULT clearAttributes();
    [id(DISPID_IHTMLELEMENT2_MERGEATTRIBUTES)] HRESULT mergeAttributes([in] IHTMLElement* mergeThis);
    [propput, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] HRESULT oncontextmenu([in] VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] HRESULT oncontextmenu([retval, out] VARIANT * p);
    [id(DISPID_IHTMLELEMENT2_INSERTADJACENTELEMENT)] HRESULT insertAdjacentElement([in] BSTR where,[in] IHTMLElement* insertedElement,[retval, out] IHTMLElement** inserted);
    [id(DISPID_IHTMLELEMENT2_APPLYELEMENT)] HRESULT applyElement([in] IHTMLElement* apply,[in] BSTR where,[retval, out] IHTMLElement** applied);
    [id(DISPID_IHTMLELEMENT2_GETADJACENTTEXT)] HRESULT getAdjacentText([in] BSTR where,[retval, out] BSTR* text);
    [id(DISPID_IHTMLELEMENT2_REPLACEADJACENTTEXT)] HRESULT replaceAdjacentText([in] BSTR where,[in] BSTR newText,[retval, out] BSTR* oldText);
    [propget, id(DISPID_IHTMLELEMENT2_CANHAVECHILDREN)] HRESULT canHaveChildren([retval, out] VARIANT_BOOL * p);
    [id(DISPID_IHTMLELEMENT2_ADDBEHAVIOR)] HRESULT addBehavior([in] BSTR bstrUrl,[optional, in] VARIANT* pvarFactory,[retval, out] long* pCookie);
    [id(DISPID_IHTMLELEMENT2_REMOVEBEHAVIOR)] HRESULT removeBehavior([in] long cookie,[retval, out] VARIANT_BOOL* pfResult);
    [propget, id(DISPID_IHTMLELEMENT2_RUNTIMESTYLE), nonbrowsable] HRESULT runtimeStyle([retval, out] IHTMLStyle* * p);
    [propget, id(DISPID_IHTMLELEMENT2_BEHAVIORURNS)] HRESULT behaviorUrns([retval, out] IDispatch* * p);
    [propput, id(DISPID_IHTMLELEMENT2_TAGURN)] HRESULT tagUrn([in] BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_TAGURN)] HRESULT tagUrn([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] HRESULT onbeforeeditfocus([in] VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] HRESULT onbeforeeditfocus([retval, out] VARIANT * p);
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATEVALUE), hidden, restricted] HRESULT readyStateValue([retval, out] long * p);
    [id(DISPID_IHTMLELEMENT2_GETELEMENTSBYTAGNAME)] HRESULT getElementsByTagName([in] BSTR v,[retval, out] IHTMLElementCollection** pelColl);
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f4d0-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLUniqueName : IDispatch
{
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUENUMBER), hidden] HRESULT uniqueNumber([retval, out] long * p);
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUEID), hidden] HRESULT uniqueID([retval, out] BSTR * p);
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f3f2-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLDatabinding : IDispatch
{
    [propput, id(DISPID_IHTMLDATABINDING_DATAFLD)] HRESULT dataFld([in] BSTR v);
    [propget, id(DISPID_IHTMLDATABINDING_DATAFLD)] HRESULT dataFld([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLDATABINDING_DATASRC)] HRESULT dataSrc([in] BSTR v);
    [propget, id(DISPID_IHTMLDATABINDING_DATASRC)] HRESULT dataSrc([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLDATABINDING_DATAFORMATAS)] HRESULT dataFormatAs([in] BSTR v);
    [propget, id(DISPID_IHTMLDATABINDING_DATAFORMATAS)] HRESULT dataFormatAs([retval, out] BSTR * p);
};
interface IHTMLEventObj;
interface IHTMLElement;
[
    odl,
    oleautomation,
    dual,
    uuid(3050f4fd-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTCDefaultDispatch : IDispatch
{
    [propget, id(DISPID_IHTCDEFAULTDISPATCH_ELEMENT)] HRESULT element([retval, out] IHTMLElement* * p);
    [id(DISPID_IHTCDEFAULTDISPATCH_CREATEEVENTOBJECT)] HRESULT createEventObject([retval, out] IHTMLEventObj** eventObj);
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f5df-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTCPropertyBehavior : IDispatch
{
    [id(DISPID_IHTCPROPERTYBEHAVIOR_FIRECHANGE)] HRESULT fireChange();
    [propput, id(DISPID_IHTCPROPERTYBEHAVIOR_VALUE)] HRESULT value([in] VARIANT v);
    [propget, id(DISPID_IHTCPROPERTYBEHAVIOR_VALUE)] HRESULT value([retval, out] VARIANT * p);
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f631-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTCMethodBehavior : IDispatch
{
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f4ff-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTCEventBehavior : IDispatch
{
    [id(DISPID_IHTCEVENTBEHAVIOR_FIRE)] HRESULT fire([in] IHTMLEventObj* pvar);
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f5f4-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTCAttachBehavior : IDispatch
{
    [id(DISPID_IHTCATTACHBEHAVIOR_FIREEVENT)] HRESULT fireEvent([in] IDispatch* evt);
    [id(DISPID_IHTCATTACHBEHAVIOR_DETACHEVENT)] HRESULT detachEvent();
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f5dc-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTCDescBehavior : IDispatch
{
    [propget, id(DISPID_IHTCDESCBEHAVIOR_URN), bindable] HRESULT urn([retval, out] BSTR * p);
    [propget, id(DISPID_IHTCDESCBEHAVIOR_NAME), bindable] HRESULT name([retval, out] BSTR * p);
};
[
    hidden,
    uuid(3050f573-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTCDefaultDispatch
{
properties:
methods:
    [propget, id(DISPID_IHTCDEFAULTDISPATCH_ELEMENT)] IHTMLElement* element();
    [id(DISPID_IHTCDEFAULTDISPATCH_CREATEEVENTOBJECT)] IHTMLEventObj* createEventObject();
};
[
    uuid(3050f4fc-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTCDefaultDispatch
{
    [default]           dispinterface DispHTCDefaultDispatch;
                        interface IHTCDefaultDispatch;
};
cpp_quote("EXTERN_C const GUID CLSID_CHtmlComponentDD;")
[
    hidden,
    uuid(3050f57f-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTCPropertyBehavior
{
properties:
methods:
    [id(DISPID_IHTCPROPERTYBEHAVIOR_FIRECHANGE)] void fireChange();
    [propput, id(DISPID_IHTCPROPERTYBEHAVIOR_VALUE)] void value(VARIANT v);
    [propget, id(DISPID_IHTCPROPERTYBEHAVIOR_VALUE)] VARIANT value();
};
[
    uuid(3050f5de-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTCPropertyBehavior
{
    [default]           dispinterface DispHTCPropertyBehavior;
                        interface IHTCPropertyBehavior;
};
cpp_quote("EXTERN_C const GUID CLSID_CHtmlComponentProperty;")
[
    hidden,
    uuid(3050f587-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTCMethodBehavior
{
properties:
methods:
};
[
    uuid(3050f630-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTCMethodBehavior
{
    [default]           dispinterface DispHTCMethodBehavior;
                        interface IHTCMethodBehavior;
};
cpp_quote("EXTERN_C const GUID CLSID_CHtmlComponentMethod;")
[
    hidden,
    uuid(3050f574-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTCEventBehavior
{
properties:
methods:
    [id(DISPID_IHTCEVENTBEHAVIOR_FIRE)] void fire([in] IHTMLEventObj* pvar);
};
[
    uuid(3050f4fe-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTCEventBehavior
{
    [default]           dispinterface DispHTCEventBehavior;
                        interface IHTCEventBehavior;
};
cpp_quote("EXTERN_C const GUID CLSID_CHtmlComponentEvent;")
[
    hidden,
    uuid(3050f583-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTCAttachBehavior
{
properties:
methods:
    [id(DISPID_IHTCATTACHBEHAVIOR_FIREEVENT)] void fireEvent([in] IDispatch* evt);
    [id(DISPID_IHTCATTACHBEHAVIOR_DETACHEVENT)] void detachEvent();
};
[
    uuid(3050f5f5-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTCAttachBehavior
{
    [default]           dispinterface DispHTCAttachBehavior;
                        interface IHTCAttachBehavior;
};
cpp_quote("EXTERN_C const GUID CLSID_CHtmlComponentAttach;")
[
    hidden,
    uuid(3050f57e-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTCDescBehavior
{
properties:
methods:
    [propget, id(DISPID_IHTCDESCBEHAVIOR_URN), bindable] BSTR urn();
    [propget, id(DISPID_IHTCDESCBEHAVIOR_NAME), bindable] BSTR name();
};
[
    uuid(3050f5dd-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTCDescBehavior
{
    [default]           dispinterface DispHTCDescBehavior;
                        interface IHTCDescBehavior;
};
cpp_quote("EXTERN_C const GUID CLSID_CHtmlComponentDesc;")
[
    odl,
    oleautomation,
    dual,
    uuid(3050f5e2-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLUrnCollection : IDispatch
{
    [propget, id(DISPID_IHTMLURNCOLLECTION_LENGTH)] HRESULT length([retval, out] long * p);
    [id(DISPID_IHTMLURNCOLLECTION_ITEM)] HRESULT item([in] long index,[retval, out] BSTR* ppUrn);
};
[
    uuid(3050f580-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLUrnCollection
{
    [default]           interface IHTMLUrnCollection;
};
cpp_quote("EXTERN_C const GUID CLSID_CPeerUrnCollection;")
[
    odl,
    oleautomation,
    dual,
    uuid(3050f4b7-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLGenericElement : IDispatch
{
    [propget, id(DISPID_IHTMLGENERICELEMENT_RECORDSET), hidden] HRESULT recordset([retval, out] IDispatch* * p);
    [id(DISPID_IHTMLGENERICELEMENT_NAMEDRECORDSET)] HRESULT namedRecordset([in] BSTR dataMember,[optional, in] VARIANT* hierarchy,[retval, out] IDispatch** ppRecordset);
};
[
    hidden,
    uuid(3050f563-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTMLGenericElement
{
properties:
methods:
    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)] void setAttribute([in] BSTR strAttributeName,[in] VARIANT AttributeValue,[defaultvalue(1), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)] VARIANT getAttribute([in] BSTR strAttributeName,[defaultvalue(0), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)] VARIANT_BOOL removeAttribute([in] BSTR strAttributeName,[defaultvalue(1), in] LONG lFlags);
    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] void className(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] BSTR className();
    [propput, id(DISPID_IHTMLELEMENT_ID), bindable] void id(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_ID), bindable] BSTR id();
    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)] BSTR tagName();
    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)] IHTMLElement* parentElement();
    [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable] IHTMLStyle* style();
    [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] void onhelp(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] VARIANT onhelp();
    [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] void onclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] VARIANT onclick();
    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] void ondblclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] VARIANT ondblclick();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] void onkeydown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] VARIANT onkeydown();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] void onkeyup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] VARIANT onkeyup();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] void onkeypress(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] VARIANT onkeypress();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] void onmouseout(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] VARIANT onmouseout();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] void onmouseover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] VARIANT onmouseover();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] void onmousemove(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] VARIANT onmousemove();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] void onmousedown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] VARIANT onmousedown();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] void onmouseup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] VARIANT onmouseup();
    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)] IDispatch* document();
    [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] void title(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] BSTR title();
    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] void language(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] BSTR language();
    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] void onselectstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] VARIANT onselectstart();
    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)] void scrollIntoView([optional, in] VARIANT varargStart);
    [id(DISPID_IHTMLELEMENT_CONTAINS)] VARIANT_BOOL contains([in] IHTMLElement* pChild);
    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable] long sourceIndex();
    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)] VARIANT recordNumber();
    [propput, id(DISPID_IHTMLELEMENT_LANG)] void lang(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANG)] BSTR lang();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)] long offsetLeft();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)] long offsetTop();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)] long offsetWidth();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)] long offsetHeight();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)] IHTMLElement* offsetParent();
    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)] void innerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)] BSTR innerHTML();
    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)] void innerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)] BSTR innerText();
    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)] void outerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)] BSTR outerHTML();
    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)] void outerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)] BSTR outerText();
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)] void insertAdjacentHTML([in] BSTR where,[in] BSTR html);
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)] void insertAdjacentText([in] BSTR where,[in] BSTR text);
    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)] IHTMLElement* parentTextEdit();
    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)] VARIANT_BOOL isTextEdit();
    [id(DISPID_IHTMLELEMENT_CLICK)] void click();
    [propget, id(DISPID_IHTMLELEMENT_FILTERS)] IHTMLFiltersCollection* filters();
    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] void ondragstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] VARIANT ondragstart();
    [id(DISPID_IHTMLELEMENT_TOSTRING)] BSTR toString();
    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] void onbeforeupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] VARIANT onbeforeupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] void onafterupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] VARIANT onafterupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] void onerrorupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] VARIANT onerrorupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] void onrowexit(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] VARIANT onrowexit();
    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] void onrowenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] VARIANT onrowenter();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] void ondatasetchanged(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] VARIANT ondatasetchanged();
    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] void ondataavailable(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] VARIANT ondataavailable();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] void ondatasetcomplete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] VARIANT ondatasetcomplete();
    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] void onfilterchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] VARIANT onfilterchange();
    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)] IDispatch* children();
    [propget, id(DISPID_IHTMLELEMENT_ALL)] IDispatch* all();
    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)] BSTR scopeName();
    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)] void setCapture([defaultvalue(-1), in] VARIANT_BOOL containerCapture);
    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)] void releaseCapture();
    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] void onlosecapture(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] VARIANT onlosecapture();
    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)] BSTR componentFromPoint([in] long x,[in] long y);
    [id(DISPID_IHTMLELEMENT2_DOSCROLL)] void doScroll([optional, in] VARIANT component);
    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] void onscroll(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] VARIANT onscroll();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] void ondrag(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] VARIANT ondrag();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] void ondragend(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] VARIANT ondragend();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] void ondragenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] VARIANT ondragenter();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] void ondragover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] VARIANT ondragover();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] void ondragleave(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] VARIANT ondragleave();
    [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] void ondrop(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] VARIANT ondrop();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] void onbeforecut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] VARIANT onbeforecut();
    [propput, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] void oncut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] VARIANT oncut();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] void onbeforecopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] VARIANT onbeforecopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] void oncopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] VARIANT oncopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] void onbeforepaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] VARIANT onbeforepaste();
    [propput, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] void onpaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] VARIANT onpaste();
    [propget, id(DISPID_IHTMLELEMENT2_CURRENTSTYLE), nonbrowsable] IHTMLCurrentStyle* currentStyle();
    [propput, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] void onpropertychange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] VARIANT onpropertychange();
    [id(DISPID_IHTMLELEMENT2_GETCLIENTRECTS)] IHTMLRectCollection* getClientRects();
    [id(DISPID_IHTMLELEMENT2_GETBOUNDINGCLIENTRECT)] IHTMLRect* getBoundingClientRect();
    [id(DISPID_IHTMLELEMENT2_SETEXPRESSION)] void setExpression([in] BSTR propname,[in] BSTR expression,[defaultvalue(""), in] BSTR language);
    [id(DISPID_IHTMLELEMENT2_GETEXPRESSION)] VARIANT getExpression([in] BSTR propname);
    [id(DISPID_IHTMLELEMENT2_REMOVEEXPRESSION)] VARIANT_BOOL removeExpression([in] BSTR propname);
    [propput, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] void tabIndex(short v);
    [propget, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] short tabIndex();
    [id(DISPID_IHTMLELEMENT2_FOCUS)] void focus();
    [propput, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] void accessKey(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] BSTR accessKey();
    [propput, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] void onblur(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] VARIANT onblur();
    [propput, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] void onfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] VARIANT onfocus();
    [propput, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] void onresize(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] VARIANT onresize();
    [id(DISPID_IHTMLELEMENT2_BLUR)] void blur();
    [id(DISPID_IHTMLELEMENT2_ADDFILTER)] void addFilter([in] IUnknown* pUnk);
    [id(DISPID_IHTMLELEMENT2_REMOVEFILTER)] void removeFilter([in] IUnknown* pUnk);
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTHEIGHT), displaybind, bindable] long clientHeight();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTWIDTH), displaybind, bindable] long clientWidth();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTTOP), displaybind, bindable] long clientTop();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTLEFT), displaybind, bindable] long clientLeft();
    [id(DISPID_IHTMLELEMENT2_ATTACHEVENT)] VARIANT_BOOL attachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [id(DISPID_IHTMLELEMENT2_DETACHEVENT)] void detachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATE)] VARIANT readyState();
    [propput, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] void onreadystatechange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] VARIANT onreadystatechange();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] void onrowsdelete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] VARIANT onrowsdelete();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] void onrowsinserted(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] VARIANT onrowsinserted();
    [propput, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] void oncellchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] VARIANT oncellchange();
    [propput, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] void dir(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] BSTR dir();
    [id(DISPID_IHTMLELEMENT2_CREATECONTROLRANGE)] IDispatch* createControlRange();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLHEIGHT), displaybind, bindable] long scrollHeight();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLWIDTH), displaybind, bindable] long scrollWidth();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] void scrollTop(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] long scrollTop();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] void scrollLeft(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] long scrollLeft();
    [id(DISPID_IHTMLELEMENT2_CLEARATTRIBUTES)] void clearAttributes();
    [id(DISPID_IHTMLELEMENT2_MERGEATTRIBUTES)] void mergeAttributes([in] IHTMLElement* mergeThis);
    [propput, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] void oncontextmenu(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] VARIANT oncontextmenu();
    [id(DISPID_IHTMLELEMENT2_INSERTADJACENTELEMENT)] IHTMLElement* insertAdjacentElement([in] BSTR where,[in] IHTMLElement* insertedElement);
    [id(DISPID_IHTMLELEMENT2_APPLYELEMENT)] IHTMLElement* applyElement([in] IHTMLElement* apply,[in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_GETADJACENTTEXT)] BSTR getAdjacentText([in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_REPLACEADJACENTTEXT)] BSTR replaceAdjacentText([in] BSTR where,[in] BSTR newText);
    [propget, id(DISPID_IHTMLELEMENT2_CANHAVECHILDREN)] VARIANT_BOOL canHaveChildren();
    [id(DISPID_IHTMLELEMENT2_ADDBEHAVIOR)] long addBehavior([in] BSTR bstrUrl,[optional, in] VARIANT* pvarFactory);
    [id(DISPID_IHTMLELEMENT2_REMOVEBEHAVIOR)] VARIANT_BOOL removeBehavior([in] long cookie);
    [propget, id(DISPID_IHTMLELEMENT2_RUNTIMESTYLE), nonbrowsable] IHTMLStyle* runtimeStyle();
    [propget, id(DISPID_IHTMLELEMENT2_BEHAVIORURNS)] IDispatch* behaviorUrns();
    [propput, id(DISPID_IHTMLELEMENT2_TAGURN)] void tagUrn(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_TAGURN)] BSTR tagUrn();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] void onbeforeeditfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] VARIANT onbeforeeditfocus();
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATEVALUE), hidden, restricted] long readyStateValue();
    [id(DISPID_IHTMLELEMENT2_GETELEMENTSBYTAGNAME)] IHTMLElementCollection* getElementsByTagName([in] BSTR v);
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUENUMBER), hidden] long uniqueNumber();
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUEID), hidden] BSTR uniqueID();
    [propget, id(DISPID_IHTMLDOMNODE_NODETYPE)] long nodeType();
    [propget, id(DISPID_IHTMLDOMNODE_PARENTNODE)] IHTMLDOMNode* parentNode();
    [id(DISPID_IHTMLDOMNODE_HASCHILDNODES)] VARIANT_BOOL hasChildNodes();
    [propget, id(DISPID_IHTMLDOMNODE_CHILDNODES)] IDispatch* childNodes();
    [propget, id(DISPID_IHTMLDOMNODE_ATTRIBUTES)] IDispatch* attributes();
    [id(DISPID_IHTMLDOMNODE_INSERTBEFORE)] IHTMLDOMNode* insertBefore([in] IHTMLDOMNode* newChild,[optional, in] VARIANT refChild);
    [id(DISPID_IHTMLDOMNODE_REMOVECHILD)] IHTMLDOMNode* removeChild([in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_REPLACECHILD)] IHTMLDOMNode* replaceChild([in] IHTMLDOMNode* newChild,[in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_CLONENODE)] IHTMLDOMNode* cloneNode([in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_REMOVENODE)] IHTMLDOMNode* removeNode([defaultvalue(0), in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_SWAPNODE)] IHTMLDOMNode* swapNode([in] IHTMLDOMNode* otherNode);
    [id(DISPID_IHTMLDOMNODE_REPLACENODE)] IHTMLDOMNode* replaceNode([in] IHTMLDOMNode* replacement);
    [id(DISPID_IHTMLDOMNODE_APPENDCHILD)] IHTMLDOMNode* appendChild([in] IHTMLDOMNode* newChild);
    [propget, id(DISPID_IHTMLDOMNODE_NODENAME)] BSTR nodeName();
    [propput, id(DISPID_IHTMLDOMNODE_NODEVALUE)] void nodeValue(VARIANT v);
    [propget, id(DISPID_IHTMLDOMNODE_NODEVALUE)] VARIANT nodeValue();
    [propget, id(DISPID_IHTMLDOMNODE_FIRSTCHILD)] IHTMLDOMNode* firstChild();
    [propget, id(DISPID_IHTMLDOMNODE_LASTCHILD)] IHTMLDOMNode* lastChild();
    [propget, id(DISPID_IHTMLDOMNODE_PREVIOUSSIBLING)] IHTMLDOMNode* previousSibling();
    [propget, id(DISPID_IHTMLDOMNODE_NEXTSIBLING)] IHTMLDOMNode* nextSibling();
    [propget, id(DISPID_IHTMLGENERICELEMENT_RECORDSET), hidden] IDispatch* recordset();
    [id(DISPID_IHTMLGENERICELEMENT_NAMEDRECORDSET)] IDispatch* namedRecordset([in] BSTR dataMember,[optional, in] VARIANT* hierarchy);
};
[
    uuid(3050f4b8-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLGenericElement
{
    [default]           dispinterface DispHTMLGenericElement;
    [source, default]   dispinterface HTMLElementEvents;
    [source]            dispinterface HTMLElementEvents2;
                        interface IHTMLElement;
                        interface IHTMLElement2;
                        interface IHTMLUniqueName;
                        interface IHTMLDOMNode;
                        interface IHTMLGenericElement;
};
cpp_quote("EXTERN_C const GUID CLSID_CGenericElement;")
[
    odl,
    oleautomation,
    dual,
    uuid(3050f357-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLStyleSheetRule : IDispatch
{
    [propput, id(DISPID_IHTMLSTYLESHEETRULE_SELECTORTEXT)] HRESULT selectorText([in] BSTR v);
    [propget, id(DISPID_IHTMLSTYLESHEETRULE_SELECTORTEXT)] HRESULT selectorText([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLSTYLESHEETRULE_STYLE), nonbrowsable] HRESULT style([retval, out] IHTMLRuleStyle* * p);
    [propget, id(DISPID_IHTMLSTYLESHEETRULE_READONLY)] HRESULT readOnly([retval, out] VARIANT_BOOL * p);
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f2e5-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLStyleSheetRulesCollection : IDispatch
{
    [propget, id(DISPID_IHTMLSTYLESHEETRULESCOLLECTION_LENGTH)] HRESULT length([retval, out] long * p);
    [id(DISPID_IHTMLSTYLESHEETRULESCOLLECTION_ITEM)] HRESULT item([in] long index,[retval, out] IHTMLStyleSheetRule** ppHTMLStyleSheetRule);
};
[
    uuid(3050f3ce-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLStyleSheetRule
{
    [default]           interface IHTMLStyleSheetRule;
};
cpp_quote("EXTERN_C const GUID CLSID_CStyleSheetRule;")
[
    uuid(3050f3cd-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLStyleSheetRulesCollection
{
    [default]           interface IHTMLStyleSheetRulesCollection;
};
cpp_quote("EXTERN_C const GUID CLSID_CStyleSheetRuleArray;")
interface IHTMLStyleSheetsCollection;
[
    odl,
    oleautomation,
    dual,
    uuid(3050f2e3-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLStyleSheet : IDispatch
{
    [propput, id(DISPID_IHTMLSTYLESHEET_TITLE)] HRESULT title([in] BSTR v);
    [propget, id(DISPID_IHTMLSTYLESHEET_TITLE)] HRESULT title([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLSTYLESHEET_PARENTSTYLESHEET)] HRESULT parentStyleSheet([retval, out] IHTMLStyleSheet* * p);
    [propget, id(DISPID_IHTMLSTYLESHEET_OWNINGELEMENT)] HRESULT owningElement([retval, out] IHTMLElement* * p);
    [propput, id(DISPID_IHTMLSTYLESHEET_DISABLED)] HRESULT disabled([in] VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLSTYLESHEET_DISABLED)] HRESULT disabled([retval, out] VARIANT_BOOL * p);
    [propget, id(DISPID_IHTMLSTYLESHEET_READONLY)] HRESULT readOnly([retval, out] VARIANT_BOOL * p);
    [propget, id(DISPID_IHTMLSTYLESHEET_IMPORTS)] HRESULT imports([retval, out] IHTMLStyleSheetsCollection* * p);
    [propput, id(DISPID_IHTMLSTYLESHEET_HREF)] HRESULT href([in] BSTR v);
    [propget, id(DISPID_IHTMLSTYLESHEET_HREF)] HRESULT href([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLSTYLESHEET_TYPE)] HRESULT type([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLSTYLESHEET_ID)] HRESULT id([retval, out] BSTR * p);
    [id(DISPID_IHTMLSTYLESHEET_ADDIMPORT)] HRESULT addImport([in] BSTR bstrURL,[defaultvalue(-1), in] long lIndex,[retval, out] long* plIndex);
    [id(DISPID_IHTMLSTYLESHEET_ADDRULE)] HRESULT addRule([in] BSTR bstrSelector,[in] BSTR bstrStyle,[defaultvalue(-1), in] long lIndex,[retval, out] long* plNewIndex);
    [id(DISPID_IHTMLSTYLESHEET_REMOVEIMPORT)] HRESULT removeImport([in] long lIndex);
    [id(DISPID_IHTMLSTYLESHEET_REMOVERULE)] HRESULT removeRule([in] long lIndex);
    [propput, id(DISPID_IHTMLSTYLESHEET_MEDIA)] HRESULT media([in] BSTR v);
    [propget, id(DISPID_IHTMLSTYLESHEET_MEDIA)] HRESULT media([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLSTYLESHEET_CSSTEXT)] HRESULT cssText([in] BSTR v);
    [propget, id(DISPID_IHTMLSTYLESHEET_CSSTEXT)] HRESULT cssText([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLSTYLESHEET_RULES)] HRESULT rules([retval, out] IHTMLStyleSheetRulesCollection* * p);
};
[
    uuid(3050f2e4-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLStyleSheet
{
    [default]           interface IHTMLStyleSheet;
};
cpp_quote("EXTERN_C const GUID CLSID_CStyleSheet;")
[
    odl,
    oleautomation,
    dual,
    uuid(3050f37e-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLStyleSheetsCollection : IDispatch
{
    [propget, id(DISPID_IHTMLSTYLESHEETSCOLLECTION_LENGTH)] HRESULT length([retval, out] long * p);
    [propget, id(DISPID_IHTMLSTYLESHEETSCOLLECTION__NEWENUM), hidden, restricted] HRESULT _newEnum([retval, out] IUnknown* * p);
    [id(DISPID_IHTMLSTYLESHEETSCOLLECTION_ITEM)] HRESULT item([in] VARIANT* pvarIndex,[retval, out] VARIANT* pvarResult);
};
[
    uuid(3050f37f-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLStyleSheetsCollection
{
    [default]           interface IHTMLStyleSheetsCollection;
};
cpp_quote("EXTERN_C const GUID CLSID_CStyleSheetArray;")
[
    hidden,
    uuid(3050f61d-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface HTMLLinkElementEvents2
{
properties:
methods:
    [id(DISPID_HTMLELEMENTEVENTS2_ONHELP)] VARIANT_BOOL onhelp([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCLICK)] VARIANT_BOOL onclick([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDBLCLICK)] VARIANT_BOOL ondblclick([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONKEYPRESS)] VARIANT_BOOL onkeypress([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONKEYDOWN)] void onkeydown([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONKEYUP)] void onkeyup([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEOUT)] void onmouseout([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEOVER)] void onmouseover([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEMOVE)] void onmousemove([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEDOWN)] void onmousedown([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEUP)] void onmouseup([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONSELECTSTART)] VARIANT_BOOL onselectstart([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONFILTERCHANGE)] void onfilterchange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGSTART)] VARIANT_BOOL ondragstart([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFOREUPDATE)] VARIANT_BOOL onbeforeupdate([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONAFTERUPDATE)] void onafterupdate([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONERRORUPDATE)] VARIANT_BOOL onerrorupdate([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWEXIT)] VARIANT_BOOL onrowexit([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWENTER)] void onrowenter([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDATASETCHANGED)] void ondatasetchanged([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDATAAVAILABLE)] void ondataavailable([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDATASETCOMPLETE)] void ondatasetcomplete([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONLOSECAPTURE)] void onlosecapture([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONPROPERTYCHANGE)] void onpropertychange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONSCROLL)] void onscroll([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONFOCUS)] void onfocus([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBLUR)] void onblur([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONRESIZE)] void onresize([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAG)] VARIANT_BOOL ondrag([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGEND)] void ondragend([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGENTER)] VARIANT_BOOL ondragenter([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGOVER)] VARIANT_BOOL ondragover([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGLEAVE)] void ondragleave([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDROP)] VARIANT_BOOL ondrop([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFORECUT)] VARIANT_BOOL onbeforecut([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCUT)] VARIANT_BOOL oncut([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFORECOPY)] VARIANT_BOOL onbeforecopy([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCOPY)] VARIANT_BOOL oncopy([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFOREPASTE)] VARIANT_BOOL onbeforepaste([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONPASTE)] VARIANT_BOOL onpaste([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCONTEXTMENU)] VARIANT_BOOL oncontextmenu([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWSDELETE)] void onrowsdelete([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWSINSERTED)] void onrowsinserted([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCELLCHANGE)] void oncellchange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONREADYSTATECHANGE)] void onreadystatechange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLLINKELEMENTEVENTS2_ONLOAD)] void onload([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLLINKELEMENTEVENTS2_ONERROR)] void onerror([in] IHTMLEventObj* pEvtObj);
};
[
    hidden,
    uuid(3050f3cc-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface HTMLLinkElementEvents
{
properties:
methods:
    [id(DISPID_HTMLELEMENTEVENTS_ONHELP)] VARIANT_BOOL onhelp();
    [id(DISPID_HTMLELEMENTEVENTS_ONCLICK)] VARIANT_BOOL onclick();
    [id(DISPID_HTMLELEMENTEVENTS_ONDBLCLICK)] VARIANT_BOOL ondblclick();
    [id(DISPID_HTMLELEMENTEVENTS_ONKEYPRESS)] VARIANT_BOOL onkeypress();
    [id(DISPID_HTMLELEMENTEVENTS_ONKEYDOWN)] void onkeydown();
    [id(DISPID_HTMLELEMENTEVENTS_ONKEYUP)] void onkeyup();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEOUT)] void onmouseout();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEOVER)] void onmouseover();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEMOVE)] void onmousemove();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEDOWN)] void onmousedown();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEUP)] void onmouseup();
    [id(DISPID_HTMLELEMENTEVENTS_ONSELECTSTART)] VARIANT_BOOL onselectstart();
    [id(DISPID_HTMLELEMENTEVENTS_ONFILTERCHANGE)] void onfilterchange();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGSTART)] VARIANT_BOOL ondragstart();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREUPDATE)] VARIANT_BOOL onbeforeupdate();
    [id(DISPID_HTMLELEMENTEVENTS_ONAFTERUPDATE)] void onafterupdate();
    [id(DISPID_HTMLELEMENTEVENTS_ONERRORUPDATE)] VARIANT_BOOL onerrorupdate();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWEXIT)] VARIANT_BOOL onrowexit();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWENTER)] void onrowenter();
    [id(DISPID_HTMLELEMENTEVENTS_ONDATASETCHANGED)] void ondatasetchanged();
    [id(DISPID_HTMLELEMENTEVENTS_ONDATAAVAILABLE)] void ondataavailable();
    [id(DISPID_HTMLELEMENTEVENTS_ONDATASETCOMPLETE)] void ondatasetcomplete();
    [id(DISPID_HTMLELEMENTEVENTS_ONLOSECAPTURE)] void onlosecapture();
    [id(DISPID_HTMLELEMENTEVENTS_ONPROPERTYCHANGE)] void onpropertychange();
    [id(DISPID_HTMLELEMENTEVENTS_ONSCROLL)] void onscroll();
    [id(DISPID_HTMLELEMENTEVENTS_ONFOCUS)] void onfocus();
    [id(DISPID_HTMLELEMENTEVENTS_ONBLUR)] void onblur();
    [id(DISPID_HTMLELEMENTEVENTS_ONRESIZE)] void onresize();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAG)] VARIANT_BOOL ondrag();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGEND)] void ondragend();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGENTER)] VARIANT_BOOL ondragenter();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGOVER)] VARIANT_BOOL ondragover();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGLEAVE)] void ondragleave();
    [id(DISPID_HTMLELEMENTEVENTS_ONDROP)] VARIANT_BOOL ondrop();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFORECUT)] VARIANT_BOOL onbeforecut();
    [id(DISPID_HTMLELEMENTEVENTS_ONCUT)] VARIANT_BOOL oncut();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFORECOPY)] VARIANT_BOOL onbeforecopy();
    [id(DISPID_HTMLELEMENTEVENTS_ONCOPY)] VARIANT_BOOL oncopy();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREPASTE)] VARIANT_BOOL onbeforepaste();
    [id(DISPID_HTMLELEMENTEVENTS_ONPASTE)] VARIANT_BOOL onpaste();
    [id(DISPID_HTMLELEMENTEVENTS_ONCONTEXTMENU)] VARIANT_BOOL oncontextmenu();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWSDELETE)] void onrowsdelete();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWSINSERTED)] void onrowsinserted();
    [id(DISPID_HTMLELEMENTEVENTS_ONCELLCHANGE)] void oncellchange();
    [id(DISPID_HTMLELEMENTEVENTS_ONREADYSTATECHANGE)] void onreadystatechange();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREEDITFOCUS)] void onbeforeeditfocus();
    [id(DISPID_HTMLLINKELEMENTEVENTS_ONLOAD)] void onload();
    [id(DISPID_HTMLLINKELEMENTEVENTS_ONERROR)] void onerror();
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f205-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLLinkElement : IDispatch
{
    [propput, id(DISPID_IHTMLLINKELEMENT_HREF), displaybind, bindable] HRESULT href([in] BSTR v);
    [propget, id(DISPID_IHTMLLINKELEMENT_HREF), displaybind, bindable] HRESULT href([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLLINKELEMENT_REL), displaybind, bindable] HRESULT rel([in] BSTR v);
    [propget, id(DISPID_IHTMLLINKELEMENT_REL), displaybind, bindable] HRESULT rel([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLLINKELEMENT_REV), displaybind, bindable] HRESULT rev([in] BSTR v);
    [propget, id(DISPID_IHTMLLINKELEMENT_REV), displaybind, bindable] HRESULT rev([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLLINKELEMENT_TYPE), displaybind, bindable] HRESULT type([in] BSTR v);
    [propget, id(DISPID_IHTMLLINKELEMENT_TYPE), displaybind, bindable] HRESULT type([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLLINKELEMENT_READYSTATE)] HRESULT readyState([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLLINKELEMENT_ONREADYSTATECHANGE), displaybind, bindable] HRESULT onreadystatechange([in] VARIANT v);
    [propget, id(DISPID_IHTMLLINKELEMENT_ONREADYSTATECHANGE), displaybind, bindable] HRESULT onreadystatechange([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLLINKELEMENT_ONLOAD), displaybind, bindable] HRESULT onload([in] VARIANT v);
    [propget, id(DISPID_IHTMLLINKELEMENT_ONLOAD), displaybind, bindable] HRESULT onload([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLLINKELEMENT_ONERROR), displaybind, bindable] HRESULT onerror([in] VARIANT v);
    [propget, id(DISPID_IHTMLLINKELEMENT_ONERROR), displaybind, bindable] HRESULT onerror([retval, out] VARIANT * p);
    [propget, id(DISPID_IHTMLLINKELEMENT_STYLESHEET)] HRESULT styleSheet([retval, out] IHTMLStyleSheet* * p);
    [propput, id(DISPID_IHTMLLINKELEMENT_DISABLED), displaybind, bindable] HRESULT disabled([in] VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLLINKELEMENT_DISABLED), displaybind, bindable] HRESULT disabled([retval, out] VARIANT_BOOL * p);
    [propput, id(DISPID_IHTMLLINKELEMENT_MEDIA), displaybind, bindable] HRESULT media([in] BSTR v);
    [propget, id(DISPID_IHTMLLINKELEMENT_MEDIA), displaybind, bindable] HRESULT media([retval, out] BSTR * p);
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f4e5-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLLinkElement2 : IDispatch
{
    [propput, id(DISPID_IHTMLLINKELEMENT2_TARGET), displaybind, bindable] HRESULT target([in] BSTR v);
    [propget, id(DISPID_IHTMLLINKELEMENT2_TARGET), displaybind, bindable] HRESULT target([retval, out] BSTR * p);
};
[
    hidden,
    uuid(3050f524-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTMLLinkElement
{
properties:
methods:
    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)] void setAttribute([in] BSTR strAttributeName,[in] VARIANT AttributeValue,[defaultvalue(1), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)] VARIANT getAttribute([in] BSTR strAttributeName,[defaultvalue(0), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)] VARIANT_BOOL removeAttribute([in] BSTR strAttributeName,[defaultvalue(1), in] LONG lFlags);
    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] void className(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] BSTR className();
    [propput, id(DISPID_IHTMLELEMENT_ID), bindable] void id(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_ID), bindable] BSTR id();
    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)] BSTR tagName();
    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)] IHTMLElement* parentElement();
    [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable] IHTMLStyle* style();
    [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] void onhelp(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] VARIANT onhelp();
    [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] void onclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] VARIANT onclick();
    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] void ondblclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] VARIANT ondblclick();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] void onkeydown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] VARIANT onkeydown();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] void onkeyup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] VARIANT onkeyup();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] void onkeypress(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] VARIANT onkeypress();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] void onmouseout(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] VARIANT onmouseout();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] void onmouseover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] VARIANT onmouseover();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] void onmousemove(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] VARIANT onmousemove();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] void onmousedown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] VARIANT onmousedown();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] void onmouseup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] VARIANT onmouseup();
    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)] IDispatch* document();
    [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] void title(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] BSTR title();
    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] void language(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] BSTR language();
    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] void onselectstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] VARIANT onselectstart();
    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)] void scrollIntoView([optional, in] VARIANT varargStart);
    [id(DISPID_IHTMLELEMENT_CONTAINS)] VARIANT_BOOL contains([in] IHTMLElement* pChild);
    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable] long sourceIndex();
    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)] VARIANT recordNumber();
    [propput, id(DISPID_IHTMLELEMENT_LANG)] void lang(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANG)] BSTR lang();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)] long offsetLeft();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)] long offsetTop();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)] long offsetWidth();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)] long offsetHeight();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)] IHTMLElement* offsetParent();
    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)] void innerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)] BSTR innerHTML();
    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)] void innerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)] BSTR innerText();
    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)] void outerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)] BSTR outerHTML();
    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)] void outerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)] BSTR outerText();
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)] void insertAdjacentHTML([in] BSTR where,[in] BSTR html);
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)] void insertAdjacentText([in] BSTR where,[in] BSTR text);
    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)] IHTMLElement* parentTextEdit();
    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)] VARIANT_BOOL isTextEdit();
    [id(DISPID_IHTMLELEMENT_CLICK)] void click();
    [propget, id(DISPID_IHTMLELEMENT_FILTERS)] IHTMLFiltersCollection* filters();
    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] void ondragstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] VARIANT ondragstart();
    [id(DISPID_IHTMLELEMENT_TOSTRING)] BSTR toString();
    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] void onbeforeupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] VARIANT onbeforeupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] void onafterupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] VARIANT onafterupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] void onerrorupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] VARIANT onerrorupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] void onrowexit(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] VARIANT onrowexit();
    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] void onrowenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] VARIANT onrowenter();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] void ondatasetchanged(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] VARIANT ondatasetchanged();
    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] void ondataavailable(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] VARIANT ondataavailable();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] void ondatasetcomplete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] VARIANT ondatasetcomplete();
    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] void onfilterchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] VARIANT onfilterchange();
    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)] IDispatch* children();
    [propget, id(DISPID_IHTMLELEMENT_ALL)] IDispatch* all();
    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)] BSTR scopeName();
    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)] void setCapture([defaultvalue(-1), in] VARIANT_BOOL containerCapture);
    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)] void releaseCapture();
    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] void onlosecapture(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] VARIANT onlosecapture();
    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)] BSTR componentFromPoint([in] long x,[in] long y);
    [id(DISPID_IHTMLELEMENT2_DOSCROLL)] void doScroll([optional, in] VARIANT component);
    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] void onscroll(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] VARIANT onscroll();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] void ondrag(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] VARIANT ondrag();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] void ondragend(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] VARIANT ondragend();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] void ondragenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] VARIANT ondragenter();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] void ondragover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] VARIANT ondragover();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] void ondragleave(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] VARIANT ondragleave();
    [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] void ondrop(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] VARIANT ondrop();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] void onbeforecut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] VARIANT onbeforecut();
    [propput, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] void oncut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] VARIANT oncut();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] void onbeforecopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] VARIANT onbeforecopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] void oncopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] VARIANT oncopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] void onbeforepaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] VARIANT onbeforepaste();
    [propput, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] void onpaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] VARIANT onpaste();
    [propget, id(DISPID_IHTMLELEMENT2_CURRENTSTYLE), nonbrowsable] IHTMLCurrentStyle* currentStyle();
    [propput, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] void onpropertychange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] VARIANT onpropertychange();
    [id(DISPID_IHTMLELEMENT2_GETCLIENTRECTS)] IHTMLRectCollection* getClientRects();
    [id(DISPID_IHTMLELEMENT2_GETBOUNDINGCLIENTRECT)] IHTMLRect* getBoundingClientRect();
    [id(DISPID_IHTMLELEMENT2_SETEXPRESSION)] void setExpression([in] BSTR propname,[in] BSTR expression,[defaultvalue(""), in] BSTR language);
    [id(DISPID_IHTMLELEMENT2_GETEXPRESSION)] VARIANT getExpression([in] BSTR propname);
    [id(DISPID_IHTMLELEMENT2_REMOVEEXPRESSION)] VARIANT_BOOL removeExpression([in] BSTR propname);
    [propput, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] void tabIndex(short v);
    [propget, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] short tabIndex();
    [id(DISPID_IHTMLELEMENT2_FOCUS)] void focus();
    [propput, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] void accessKey(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] BSTR accessKey();
    [propput, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] void onblur(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] VARIANT onblur();
    [propput, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] void onfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] VARIANT onfocus();
    [propput, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] void onresize(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] VARIANT onresize();
    [id(DISPID_IHTMLELEMENT2_BLUR)] void blur();
    [id(DISPID_IHTMLELEMENT2_ADDFILTER)] void addFilter([in] IUnknown* pUnk);
    [id(DISPID_IHTMLELEMENT2_REMOVEFILTER)] void removeFilter([in] IUnknown* pUnk);
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTHEIGHT), displaybind, bindable] long clientHeight();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTWIDTH), displaybind, bindable] long clientWidth();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTTOP), displaybind, bindable] long clientTop();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTLEFT), displaybind, bindable] long clientLeft();
    [id(DISPID_IHTMLELEMENT2_ATTACHEVENT)] VARIANT_BOOL attachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [id(DISPID_IHTMLELEMENT2_DETACHEVENT)] void detachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATE)] VARIANT readyState();
    [propput, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] void onreadystatechange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] VARIANT onreadystatechange();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] void onrowsdelete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] VARIANT onrowsdelete();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] void onrowsinserted(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] VARIANT onrowsinserted();
    [propput, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] void oncellchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] VARIANT oncellchange();
    [propput, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] void dir(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] BSTR dir();
    [id(DISPID_IHTMLELEMENT2_CREATECONTROLRANGE)] IDispatch* createControlRange();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLHEIGHT), displaybind, bindable] long scrollHeight();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLWIDTH), displaybind, bindable] long scrollWidth();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] void scrollTop(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] long scrollTop();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] void scrollLeft(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] long scrollLeft();
    [id(DISPID_IHTMLELEMENT2_CLEARATTRIBUTES)] void clearAttributes();
    [id(DISPID_IHTMLELEMENT2_MERGEATTRIBUTES)] void mergeAttributes([in] IHTMLElement* mergeThis);
    [propput, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] void oncontextmenu(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] VARIANT oncontextmenu();
    [id(DISPID_IHTMLELEMENT2_INSERTADJACENTELEMENT)] IHTMLElement* insertAdjacentElement([in] BSTR where,[in] IHTMLElement* insertedElement);
    [id(DISPID_IHTMLELEMENT2_APPLYELEMENT)] IHTMLElement* applyElement([in] IHTMLElement* apply,[in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_GETADJACENTTEXT)] BSTR getAdjacentText([in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_REPLACEADJACENTTEXT)] BSTR replaceAdjacentText([in] BSTR where,[in] BSTR newText);
    [propget, id(DISPID_IHTMLELEMENT2_CANHAVECHILDREN)] VARIANT_BOOL canHaveChildren();
    [id(DISPID_IHTMLELEMENT2_ADDBEHAVIOR)] long addBehavior([in] BSTR bstrUrl,[optional, in] VARIANT* pvarFactory);
    [id(DISPID_IHTMLELEMENT2_REMOVEBEHAVIOR)] VARIANT_BOOL removeBehavior([in] long cookie);
    [propget, id(DISPID_IHTMLELEMENT2_RUNTIMESTYLE), nonbrowsable] IHTMLStyle* runtimeStyle();
    [propget, id(DISPID_IHTMLELEMENT2_BEHAVIORURNS)] IDispatch* behaviorUrns();
    [propput, id(DISPID_IHTMLELEMENT2_TAGURN)] void tagUrn(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_TAGURN)] BSTR tagUrn();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] void onbeforeeditfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] VARIANT onbeforeeditfocus();
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATEVALUE), hidden, restricted] long readyStateValue();
    [id(DISPID_IHTMLELEMENT2_GETELEMENTSBYTAGNAME)] IHTMLElementCollection* getElementsByTagName([in] BSTR v);
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUENUMBER), hidden] long uniqueNumber();
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUEID), hidden] BSTR uniqueID();
    [propget, id(DISPID_IHTMLDOMNODE_NODETYPE)] long nodeType();
    [propget, id(DISPID_IHTMLDOMNODE_PARENTNODE)] IHTMLDOMNode* parentNode();
    [id(DISPID_IHTMLDOMNODE_HASCHILDNODES)] VARIANT_BOOL hasChildNodes();
    [propget, id(DISPID_IHTMLDOMNODE_CHILDNODES)] IDispatch* childNodes();
    [propget, id(DISPID_IHTMLDOMNODE_ATTRIBUTES)] IDispatch* attributes();
    [id(DISPID_IHTMLDOMNODE_INSERTBEFORE)] IHTMLDOMNode* insertBefore([in] IHTMLDOMNode* newChild,[optional, in] VARIANT refChild);
    [id(DISPID_IHTMLDOMNODE_REMOVECHILD)] IHTMLDOMNode* removeChild([in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_REPLACECHILD)] IHTMLDOMNode* replaceChild([in] IHTMLDOMNode* newChild,[in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_CLONENODE)] IHTMLDOMNode* cloneNode([in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_REMOVENODE)] IHTMLDOMNode* removeNode([defaultvalue(0), in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_SWAPNODE)] IHTMLDOMNode* swapNode([in] IHTMLDOMNode* otherNode);
    [id(DISPID_IHTMLDOMNODE_REPLACENODE)] IHTMLDOMNode* replaceNode([in] IHTMLDOMNode* replacement);
    [id(DISPID_IHTMLDOMNODE_APPENDCHILD)] IHTMLDOMNode* appendChild([in] IHTMLDOMNode* newChild);
    [propget, id(DISPID_IHTMLDOMNODE_NODENAME)] BSTR nodeName();
    [propput, id(DISPID_IHTMLDOMNODE_NODEVALUE)] void nodeValue(VARIANT v);
    [propget, id(DISPID_IHTMLDOMNODE_NODEVALUE)] VARIANT nodeValue();
    [propget, id(DISPID_IHTMLDOMNODE_FIRSTCHILD)] IHTMLDOMNode* firstChild();
    [propget, id(DISPID_IHTMLDOMNODE_LASTCHILD)] IHTMLDOMNode* lastChild();
    [propget, id(DISPID_IHTMLDOMNODE_PREVIOUSSIBLING)] IHTMLDOMNode* previousSibling();
    [propget, id(DISPID_IHTMLDOMNODE_NEXTSIBLING)] IHTMLDOMNode* nextSibling();
    [propput, id(DISPID_IHTMLLINKELEMENT_HREF), displaybind, bindable] void href(BSTR v);
    [propget, id(DISPID_IHTMLLINKELEMENT_HREF), displaybind, bindable] BSTR href();
    [propput, id(DISPID_IHTMLLINKELEMENT_REL), displaybind, bindable] void rel(BSTR v);
    [propget, id(DISPID_IHTMLLINKELEMENT_REL), displaybind, bindable] BSTR rel();
    [propput, id(DISPID_IHTMLLINKELEMENT_REV), displaybind, bindable] void rev(BSTR v);
    [propget, id(DISPID_IHTMLLINKELEMENT_REV), displaybind, bindable] BSTR rev();
    [propput, id(DISPID_IHTMLLINKELEMENT_TYPE), displaybind, bindable] void type(BSTR v);
    [propget, id(DISPID_IHTMLLINKELEMENT_TYPE), displaybind, bindable] BSTR type();
    [propput, id(DISPID_IHTMLLINKELEMENT_ONLOAD), displaybind, bindable] void onload(VARIANT v);
    [propget, id(DISPID_IHTMLLINKELEMENT_ONLOAD), displaybind, bindable] VARIANT onload();
    [propput, id(DISPID_IHTMLLINKELEMENT_ONERROR), displaybind, bindable] void onerror(VARIANT v);
    [propget, id(DISPID_IHTMLLINKELEMENT_ONERROR), displaybind, bindable] VARIANT onerror();
    [propget, id(DISPID_IHTMLLINKELEMENT_STYLESHEET)] IHTMLStyleSheet* styleSheet();
    [propput, id(DISPID_IHTMLLINKELEMENT_DISABLED), displaybind, bindable] void disabled(VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLLINKELEMENT_DISABLED), displaybind, bindable] VARIANT_BOOL disabled();
    [propput, id(DISPID_IHTMLLINKELEMENT_MEDIA), displaybind, bindable] void media(BSTR v);
    [propget, id(DISPID_IHTMLLINKELEMENT_MEDIA), displaybind, bindable] BSTR media();
    [propput, id(DISPID_IHTMLLINKELEMENT2_TARGET), displaybind, bindable] void target(BSTR v);
    [propget, id(DISPID_IHTMLLINKELEMENT2_TARGET), displaybind, bindable] BSTR target();
};
[
    uuid(3050f277-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLLinkElement
{
    [default]           dispinterface DispHTMLLinkElement;
    [source, default]   dispinterface HTMLLinkElementEvents;
    [source]            dispinterface HTMLLinkElementEvents2;
                        interface IHTMLElement;
                        interface IHTMLElement2;
                        interface IHTMLUniqueName;
                        interface IHTMLDOMNode;
                        interface IHTMLLinkElement;
                        interface IHTMLLinkElement2;
};
cpp_quote("EXTERN_C const GUID CLSID_CLinkElement;")
typedef enum _htmlUnit
{
    htmlUnitCharacter = 1,
    htmlUnitWord = 2,
    htmlUnitSentence = 3,
    htmlUnitTextEdit = 6,
    htmlUnit_Max = 2147483647L
} htmlUnit;

typedef enum _htmlEndPoints
{
    htmlEndPointsStartToStart = 1,
    htmlEndPointsStartToEnd = 2,
    htmlEndPointsEndToStart = 3,
    htmlEndPointsEndToEnd = 4,
    htmlEndPoints_Max = 2147483647L
} htmlEndPoints;

typedef enum _htmlDirection
{
    htmlDirectionForward = 99999,
    htmlDirectionBackward = -99999,
    htmlDirection_Max = 2147483647L
} htmlDirection;

[
    odl,
    oleautomation,
    dual,
    uuid(3050f220-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLTxtRange : IDispatch
{
    [propget, id(DISPID_IHTMLTXTRANGE_HTMLTEXT)] HRESULT htmlText([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLTXTRANGE_TEXT)] HRESULT text([in] BSTR v);
    [propget, id(DISPID_IHTMLTXTRANGE_TEXT)] HRESULT text([retval, out] BSTR * p);
    [id(DISPID_IHTMLTXTRANGE_PARENTELEMENT)] HRESULT parentElement([retval, out] IHTMLElement** parent);
    [id(DISPID_IHTMLTXTRANGE_DUPLICATE)] HRESULT duplicate([retval, out] IHTMLTxtRange** Duplicate);
    [id(DISPID_IHTMLTXTRANGE_INRANGE)] HRESULT inRange([in] IHTMLTxtRange* Range,[retval, out] VARIANT_BOOL* InRange);
    [id(DISPID_IHTMLTXTRANGE_ISEQUAL)] HRESULT isEqual([in] IHTMLTxtRange* Range,[retval, out] VARIANT_BOOL* IsEqual);
    [id(DISPID_IHTMLTXTRANGE_SCROLLINTOVIEW)] HRESULT scrollIntoView([defaultvalue(-1), in] VARIANT_BOOL fStart);
    [id(DISPID_IHTMLTXTRANGE_COLLAPSE)] HRESULT collapse([defaultvalue(-1), in] VARIANT_BOOL Start);
    [id(DISPID_IHTMLTXTRANGE_EXPAND)] HRESULT expand([in] BSTR Unit,[retval, out] VARIANT_BOOL* Success);
    [id(DISPID_IHTMLTXTRANGE_MOVE)] HRESULT move([in] BSTR Unit,[defaultvalue(1), in] long Count,[retval, out] long* ActualCount);
    [id(DISPID_IHTMLTXTRANGE_MOVESTART)] HRESULT moveStart([in] BSTR Unit,[defaultvalue(1), in] long Count,[retval, out] long* ActualCount);
    [id(DISPID_IHTMLTXTRANGE_MOVEEND)] HRESULT moveEnd([in] BSTR Unit,[defaultvalue(1), in] long Count,[retval, out] long* ActualCount);
    [id(DISPID_IHTMLTXTRANGE_SELECT)] HRESULT select();
    [id(DISPID_IHTMLTXTRANGE_PASTEHTML)] HRESULT pasteHTML([in] BSTR html);
    [id(DISPID_IHTMLTXTRANGE_MOVETOELEMENTTEXT)] HRESULT moveToElementText([in] IHTMLElement* element);
    [id(DISPID_IHTMLTXTRANGE_SETENDPOINT)] HRESULT setEndPoint([in] BSTR how,[in] IHTMLTxtRange* SourceRange);
    [id(DISPID_IHTMLTXTRANGE_COMPAREENDPOINTS)] HRESULT compareEndPoints([in] BSTR how,[in] IHTMLTxtRange* SourceRange,[retval, out] long* ret);
    [id(DISPID_IHTMLTXTRANGE_FINDTEXT)] HRESULT findText([in] BSTR String,[defaultvalue(1073741823), in] long count,[defaultvalue(0), in] long Flags,[retval, out] VARIANT_BOOL* Success);
    [id(DISPID_IHTMLTXTRANGE_MOVETOPOINT)] HRESULT moveToPoint([in] long x,[in] long y);
    [id(DISPID_IHTMLTXTRANGE_GETBOOKMARK)] HRESULT getBookmark([retval, out] BSTR* Boolmark);
    [id(DISPID_IHTMLTXTRANGE_MOVETOBOOKMARK)] HRESULT moveToBookmark([in] BSTR Bookmark,[retval, out] VARIANT_BOOL* Success);
    [id(DISPID_IHTMLTXTRANGE_QUERYCOMMANDSUPPORTED)] HRESULT queryCommandSupported([in] BSTR cmdID,[retval, out] VARIANT_BOOL* pfRet);
    [id(DISPID_IHTMLTXTRANGE_QUERYCOMMANDENABLED)] HRESULT queryCommandEnabled([in] BSTR cmdID,[retval, out] VARIANT_BOOL* pfRet);
    [id(DISPID_IHTMLTXTRANGE_QUERYCOMMANDSTATE)] HRESULT queryCommandState([in] BSTR cmdID,[retval, out] VARIANT_BOOL* pfRet);
    [id(DISPID_IHTMLTXTRANGE_QUERYCOMMANDINDETERM)] HRESULT queryCommandIndeterm([in] BSTR cmdID,[retval, out] VARIANT_BOOL* pfRet);
    [id(DISPID_IHTMLTXTRANGE_QUERYCOMMANDTEXT)] HRESULT queryCommandText([in] BSTR cmdID,[retval, out] BSTR* pcmdText);
    [id(DISPID_IHTMLTXTRANGE_QUERYCOMMANDVALUE)] HRESULT queryCommandValue([in] BSTR cmdID,[retval, out] VARIANT* pcmdValue);
    [id(DISPID_IHTMLTXTRANGE_EXECCOMMAND)] HRESULT execCommand([in] BSTR cmdID,[defaultvalue(0), in] VARIANT_BOOL showUI,[optional, in] VARIANT value,[retval, out] VARIANT_BOOL* pfRet);
    [id(DISPID_IHTMLTXTRANGE_EXECCOMMANDSHOWHELP)] HRESULT execCommandShowHelp([in] BSTR cmdID,[retval, out] VARIANT_BOOL* pfRet);
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f40b-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLTextRangeMetrics : IDispatch
{
    [propget, id(DISPID_IHTMLTEXTRANGEMETRICS_OFFSETTOP)] HRESULT offsetTop([retval, out] long * p);
    [propget, id(DISPID_IHTMLTEXTRANGEMETRICS_OFFSETLEFT)] HRESULT offsetLeft([retval, out] long * p);
    [propget, id(DISPID_IHTMLTEXTRANGEMETRICS_BOUNDINGTOP)] HRESULT boundingTop([retval, out] long * p);
    [propget, id(DISPID_IHTMLTEXTRANGEMETRICS_BOUNDINGLEFT)] HRESULT boundingLeft([retval, out] long * p);
    [propget, id(DISPID_IHTMLTEXTRANGEMETRICS_BOUNDINGWIDTH)] HRESULT boundingWidth([retval, out] long * p);
    [propget, id(DISPID_IHTMLTEXTRANGEMETRICS_BOUNDINGHEIGHT)] HRESULT boundingHeight([retval, out] long * p);
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f4a6-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLTextRangeMetrics2 : IDispatch
{
    [id(DISPID_IHTMLTEXTRANGEMETRICS2_GETCLIENTRECTS)] HRESULT getClientRects([retval, out] IHTMLRectCollection** pRectCol);
    [id(DISPID_IHTMLTEXTRANGEMETRICS2_GETBOUNDINGCLIENTRECT)] HRESULT getBoundingClientRect([retval, out] IHTMLRect** pRect);
};
[
    hidden,
    uuid(3050f614-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface HTMLFormElementEvents2
{
properties:
methods:
    [id(DISPID_HTMLELEMENTEVENTS2_ONHELP)] VARIANT_BOOL onhelp([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCLICK)] VARIANT_BOOL onclick([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDBLCLICK)] VARIANT_BOOL ondblclick([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONKEYPRESS)] VARIANT_BOOL onkeypress([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONKEYDOWN)] void onkeydown([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONKEYUP)] void onkeyup([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEOUT)] void onmouseout([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEOVER)] void onmouseover([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEMOVE)] void onmousemove([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEDOWN)] void onmousedown([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEUP)] void onmouseup([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONSELECTSTART)] VARIANT_BOOL onselectstart([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONFILTERCHANGE)] void onfilterchange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGSTART)] VARIANT_BOOL ondragstart([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFOREUPDATE)] VARIANT_BOOL onbeforeupdate([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONAFTERUPDATE)] void onafterupdate([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONERRORUPDATE)] VARIANT_BOOL onerrorupdate([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWEXIT)] VARIANT_BOOL onrowexit([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWENTER)] void onrowenter([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDATASETCHANGED)] void ondatasetchanged([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDATAAVAILABLE)] void ondataavailable([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDATASETCOMPLETE)] void ondatasetcomplete([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONLOSECAPTURE)] void onlosecapture([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONPROPERTYCHANGE)] void onpropertychange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONSCROLL)] void onscroll([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONFOCUS)] void onfocus([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBLUR)] void onblur([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONRESIZE)] void onresize([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAG)] VARIANT_BOOL ondrag([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGEND)] void ondragend([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGENTER)] VARIANT_BOOL ondragenter([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGOVER)] VARIANT_BOOL ondragover([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGLEAVE)] void ondragleave([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDROP)] VARIANT_BOOL ondrop([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFORECUT)] VARIANT_BOOL onbeforecut([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCUT)] VARIANT_BOOL oncut([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFORECOPY)] VARIANT_BOOL onbeforecopy([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCOPY)] VARIANT_BOOL oncopy([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFOREPASTE)] VARIANT_BOOL onbeforepaste([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONPASTE)] VARIANT_BOOL onpaste([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCONTEXTMENU)] VARIANT_BOOL oncontextmenu([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWSDELETE)] void onrowsdelete([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWSINSERTED)] void onrowsinserted([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCELLCHANGE)] void oncellchange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONREADYSTATECHANGE)] void onreadystatechange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLFORMELEMENTEVENTS2_ONSUBMIT)] VARIANT_BOOL onsubmit([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLFORMELEMENTEVENTS2_ONRESET)] VARIANT_BOOL onreset([in] IHTMLEventObj* pEvtObj);
};
[
    hidden,
    uuid(3050f364-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface HTMLFormElementEvents
{
properties:
methods:
    [id(DISPID_HTMLELEMENTEVENTS_ONHELP)] VARIANT_BOOL onhelp();
    [id(DISPID_HTMLELEMENTEVENTS_ONCLICK)] VARIANT_BOOL onclick();
    [id(DISPID_HTMLELEMENTEVENTS_ONDBLCLICK)] VARIANT_BOOL ondblclick();
    [id(DISPID_HTMLELEMENTEVENTS_ONKEYPRESS)] VARIANT_BOOL onkeypress();
    [id(DISPID_HTMLELEMENTEVENTS_ONKEYDOWN)] void onkeydown();
    [id(DISPID_HTMLELEMENTEVENTS_ONKEYUP)] void onkeyup();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEOUT)] void onmouseout();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEOVER)] void onmouseover();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEMOVE)] void onmousemove();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEDOWN)] void onmousedown();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEUP)] void onmouseup();
    [id(DISPID_HTMLELEMENTEVENTS_ONSELECTSTART)] VARIANT_BOOL onselectstart();
    [id(DISPID_HTMLELEMENTEVENTS_ONFILTERCHANGE)] void onfilterchange();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGSTART)] VARIANT_BOOL ondragstart();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREUPDATE)] VARIANT_BOOL onbeforeupdate();
    [id(DISPID_HTMLELEMENTEVENTS_ONAFTERUPDATE)] void onafterupdate();
    [id(DISPID_HTMLELEMENTEVENTS_ONERRORUPDATE)] VARIANT_BOOL onerrorupdate();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWEXIT)] VARIANT_BOOL onrowexit();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWENTER)] void onrowenter();
    [id(DISPID_HTMLELEMENTEVENTS_ONDATASETCHANGED)] void ondatasetchanged();
    [id(DISPID_HTMLELEMENTEVENTS_ONDATAAVAILABLE)] void ondataavailable();
    [id(DISPID_HTMLELEMENTEVENTS_ONDATASETCOMPLETE)] void ondatasetcomplete();
    [id(DISPID_HTMLELEMENTEVENTS_ONLOSECAPTURE)] void onlosecapture();
    [id(DISPID_HTMLELEMENTEVENTS_ONPROPERTYCHANGE)] void onpropertychange();
    [id(DISPID_HTMLELEMENTEVENTS_ONSCROLL)] void onscroll();
    [id(DISPID_HTMLELEMENTEVENTS_ONFOCUS)] void onfocus();
    [id(DISPID_HTMLELEMENTEVENTS_ONBLUR)] void onblur();
    [id(DISPID_HTMLELEMENTEVENTS_ONRESIZE)] void onresize();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAG)] VARIANT_BOOL ondrag();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGEND)] void ondragend();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGENTER)] VARIANT_BOOL ondragenter();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGOVER)] VARIANT_BOOL ondragover();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGLEAVE)] void ondragleave();
    [id(DISPID_HTMLELEMENTEVENTS_ONDROP)] VARIANT_BOOL ondrop();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFORECUT)] VARIANT_BOOL onbeforecut();
    [id(DISPID_HTMLELEMENTEVENTS_ONCUT)] VARIANT_BOOL oncut();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFORECOPY)] VARIANT_BOOL onbeforecopy();
    [id(DISPID_HTMLELEMENTEVENTS_ONCOPY)] VARIANT_BOOL oncopy();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREPASTE)] VARIANT_BOOL onbeforepaste();
    [id(DISPID_HTMLELEMENTEVENTS_ONPASTE)] VARIANT_BOOL onpaste();
    [id(DISPID_HTMLELEMENTEVENTS_ONCONTEXTMENU)] VARIANT_BOOL oncontextmenu();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWSDELETE)] void onrowsdelete();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWSINSERTED)] void onrowsinserted();
    [id(DISPID_HTMLELEMENTEVENTS_ONCELLCHANGE)] void oncellchange();
    [id(DISPID_HTMLELEMENTEVENTS_ONREADYSTATECHANGE)] void onreadystatechange();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREEDITFOCUS)] void onbeforeeditfocus();
    [id(DISPID_HTMLFORMELEMENTEVENTS_ONSUBMIT)] VARIANT_BOOL onsubmit();
    [id(DISPID_HTMLFORMELEMENTEVENTS_ONRESET)] VARIANT_BOOL onreset();
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f1f7-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLFormElement : IDispatch
{
    [propput, id(DISPID_IHTMLFORMELEMENT_ACTION), displaybind, bindable] HRESULT action([in] BSTR v);
    [propget, id(DISPID_IHTMLFORMELEMENT_ACTION), displaybind, bindable] HRESULT action([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLFORMELEMENT_DIR), displaybind, bindable] HRESULT dir([in] BSTR v);
    [propget, id(DISPID_IHTMLFORMELEMENT_DIR), displaybind, bindable] HRESULT dir([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLFORMELEMENT_ENCODING), displaybind, bindable] HRESULT encoding([in] BSTR v);
    [propget, id(DISPID_IHTMLFORMELEMENT_ENCODING), displaybind, bindable] HRESULT encoding([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLFORMELEMENT_METHOD), displaybind, bindable] HRESULT method([in] BSTR v);
    [propget, id(DISPID_IHTMLFORMELEMENT_METHOD), displaybind, bindable] HRESULT method([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLFORMELEMENT_ELEMENTS)] HRESULT elements([retval, out] IDispatch* * p);
    [propput, id(DISPID_IHTMLFORMELEMENT_TARGET), displaybind, bindable] HRESULT target([in] BSTR v);
    [propget, id(DISPID_IHTMLFORMELEMENT_TARGET), displaybind, bindable] HRESULT target([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLFORMELEMENT_NAME), displaybind, bindable] HRESULT name([in] BSTR v);
    [propget, id(DISPID_IHTMLFORMELEMENT_NAME), displaybind, bindable] HRESULT name([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLFORMELEMENT_ONSUBMIT), displaybind, bindable] HRESULT onsubmit([in] VARIANT v);
    [propget, id(DISPID_IHTMLFORMELEMENT_ONSUBMIT), displaybind, bindable] HRESULT onsubmit([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLFORMELEMENT_ONRESET), displaybind, bindable] HRESULT onreset([in] VARIANT v);
    [propget, id(DISPID_IHTMLFORMELEMENT_ONRESET), displaybind, bindable] HRESULT onreset([retval, out] VARIANT * p);
    [id(DISPID_IHTMLFORMELEMENT_SUBMIT)] HRESULT submit();
    [id(DISPID_IHTMLFORMELEMENT_RESET)] HRESULT reset();
    [propput, id(DISPID_IHTMLFORMELEMENT_LENGTH)] HRESULT length([in] long v);
    [propget, id(DISPID_IHTMLFORMELEMENT_LENGTH)] HRESULT length([retval, out] long * p);
    [propget, id(DISPID_IHTMLFORMELEMENT__NEWENUM), hidden, restricted] HRESULT _newEnum([retval, out] IUnknown* * p);
    [id(DISPID_IHTMLFORMELEMENT_ITEM)] HRESULT item([optional, in] VARIANT name,[optional, in] VARIANT index,[retval, out] IDispatch** pdisp);
    [id(DISPID_IHTMLFORMELEMENT_TAGS)] HRESULT tags([in] VARIANT tagName,[retval, out] IDispatch** pdisp);
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f4f6-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLFormElement2 : IDispatch
{
    [propput, id(DISPID_IHTMLFORMELEMENT2_ACCEPTCHARSET), displaybind, bindable] HRESULT acceptCharset([in] BSTR v);
    [propget, id(DISPID_IHTMLFORMELEMENT2_ACCEPTCHARSET), displaybind, bindable] HRESULT acceptCharset([retval, out] BSTR * p);
    [id(DISPID_IHTMLFORMELEMENT2_URNS)] HRESULT urns([in] VARIANT urn,[retval, out] IDispatch** pdisp);
};
[
    hidden,
    uuid(3050f510-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTMLFormElement
{
properties:
methods:
    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)] void setAttribute([in] BSTR strAttributeName,[in] VARIANT AttributeValue,[defaultvalue(1), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)] VARIANT getAttribute([in] BSTR strAttributeName,[defaultvalue(0), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)] VARIANT_BOOL removeAttribute([in] BSTR strAttributeName,[defaultvalue(1), in] LONG lFlags);
    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] void className(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] BSTR className();
    [propput, id(DISPID_IHTMLELEMENT_ID), bindable] void id(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_ID), bindable] BSTR id();
    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)] BSTR tagName();
    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)] IHTMLElement* parentElement();
    [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable] IHTMLStyle* style();
    [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] void onhelp(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] VARIANT onhelp();
    [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] void onclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] VARIANT onclick();
    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] void ondblclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] VARIANT ondblclick();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] void onkeydown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] VARIANT onkeydown();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] void onkeyup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] VARIANT onkeyup();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] void onkeypress(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] VARIANT onkeypress();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] void onmouseout(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] VARIANT onmouseout();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] void onmouseover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] VARIANT onmouseover();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] void onmousemove(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] VARIANT onmousemove();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] void onmousedown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] VARIANT onmousedown();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] void onmouseup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] VARIANT onmouseup();
    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)] IDispatch* document();
    [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] void title(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] BSTR title();
    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] void language(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] BSTR language();
    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] void onselectstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] VARIANT onselectstart();
    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)] void scrollIntoView([optional, in] VARIANT varargStart);
    [id(DISPID_IHTMLELEMENT_CONTAINS)] VARIANT_BOOL contains([in] IHTMLElement* pChild);
    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable] long sourceIndex();
    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)] VARIANT recordNumber();
    [propput, id(DISPID_IHTMLELEMENT_LANG)] void lang(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANG)] BSTR lang();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)] long offsetLeft();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)] long offsetTop();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)] long offsetWidth();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)] long offsetHeight();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)] IHTMLElement* offsetParent();
    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)] void innerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)] BSTR innerHTML();
    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)] void innerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)] BSTR innerText();
    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)] void outerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)] BSTR outerHTML();
    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)] void outerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)] BSTR outerText();
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)] void insertAdjacentHTML([in] BSTR where,[in] BSTR html);
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)] void insertAdjacentText([in] BSTR where,[in] BSTR text);
    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)] IHTMLElement* parentTextEdit();
    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)] VARIANT_BOOL isTextEdit();
    [id(DISPID_IHTMLELEMENT_CLICK)] void click();
    [propget, id(DISPID_IHTMLELEMENT_FILTERS)] IHTMLFiltersCollection* filters();
    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] void ondragstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] VARIANT ondragstart();
    [id(DISPID_IHTMLELEMENT_TOSTRING)] BSTR toString();
    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] void onbeforeupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] VARIANT onbeforeupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] void onafterupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] VARIANT onafterupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] void onerrorupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] VARIANT onerrorupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] void onrowexit(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] VARIANT onrowexit();
    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] void onrowenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] VARIANT onrowenter();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] void ondatasetchanged(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] VARIANT ondatasetchanged();
    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] void ondataavailable(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] VARIANT ondataavailable();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] void ondatasetcomplete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] VARIANT ondatasetcomplete();
    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] void onfilterchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] VARIANT onfilterchange();
    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)] IDispatch* children();
    [propget, id(DISPID_IHTMLELEMENT_ALL)] IDispatch* all();
    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)] BSTR scopeName();
    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)] void setCapture([defaultvalue(-1), in] VARIANT_BOOL containerCapture);
    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)] void releaseCapture();
    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] void onlosecapture(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] VARIANT onlosecapture();
    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)] BSTR componentFromPoint([in] long x,[in] long y);
    [id(DISPID_IHTMLELEMENT2_DOSCROLL)] void doScroll([optional, in] VARIANT component);
    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] void onscroll(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] VARIANT onscroll();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] void ondrag(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] VARIANT ondrag();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] void ondragend(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] VARIANT ondragend();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] void ondragenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] VARIANT ondragenter();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] void ondragover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] VARIANT ondragover();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] void ondragleave(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] VARIANT ondragleave();
    [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] void ondrop(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] VARIANT ondrop();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] void onbeforecut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] VARIANT onbeforecut();
    [propput, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] void oncut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] VARIANT oncut();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] void onbeforecopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] VARIANT onbeforecopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] void oncopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] VARIANT oncopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] void onbeforepaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] VARIANT onbeforepaste();
    [propput, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] void onpaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] VARIANT onpaste();
    [propget, id(DISPID_IHTMLELEMENT2_CURRENTSTYLE), nonbrowsable] IHTMLCurrentStyle* currentStyle();
    [propput, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] void onpropertychange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] VARIANT onpropertychange();
    [id(DISPID_IHTMLELEMENT2_GETCLIENTRECTS)] IHTMLRectCollection* getClientRects();
    [id(DISPID_IHTMLELEMENT2_GETBOUNDINGCLIENTRECT)] IHTMLRect* getBoundingClientRect();
    [id(DISPID_IHTMLELEMENT2_SETEXPRESSION)] void setExpression([in] BSTR propname,[in] BSTR expression,[defaultvalue(""), in] BSTR language);
    [id(DISPID_IHTMLELEMENT2_GETEXPRESSION)] VARIANT getExpression([in] BSTR propname);
    [id(DISPID_IHTMLELEMENT2_REMOVEEXPRESSION)] VARIANT_BOOL removeExpression([in] BSTR propname);
    [propput, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] void tabIndex(short v);
    [propget, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] short tabIndex();
    [id(DISPID_IHTMLELEMENT2_FOCUS)] void focus();
    [propput, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] void accessKey(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] BSTR accessKey();
    [propput, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] void onblur(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] VARIANT onblur();
    [propput, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] void onfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] VARIANT onfocus();
    [propput, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] void onresize(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] VARIANT onresize();
    [id(DISPID_IHTMLELEMENT2_BLUR)] void blur();
    [id(DISPID_IHTMLELEMENT2_ADDFILTER)] void addFilter([in] IUnknown* pUnk);
    [id(DISPID_IHTMLELEMENT2_REMOVEFILTER)] void removeFilter([in] IUnknown* pUnk);
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTHEIGHT), displaybind, bindable] long clientHeight();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTWIDTH), displaybind, bindable] long clientWidth();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTTOP), displaybind, bindable] long clientTop();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTLEFT), displaybind, bindable] long clientLeft();
    [id(DISPID_IHTMLELEMENT2_ATTACHEVENT)] VARIANT_BOOL attachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [id(DISPID_IHTMLELEMENT2_DETACHEVENT)] void detachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATE)] VARIANT readyState();
    [propput, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] void onreadystatechange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] VARIANT onreadystatechange();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] void onrowsdelete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] VARIANT onrowsdelete();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] void onrowsinserted(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] VARIANT onrowsinserted();
    [propput, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] void oncellchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] VARIANT oncellchange();
    [propput, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] void dir(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] BSTR dir();
    [id(DISPID_IHTMLELEMENT2_CREATECONTROLRANGE)] IDispatch* createControlRange();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLHEIGHT), displaybind, bindable] long scrollHeight();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLWIDTH), displaybind, bindable] long scrollWidth();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] void scrollTop(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] long scrollTop();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] void scrollLeft(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] long scrollLeft();
    [id(DISPID_IHTMLELEMENT2_CLEARATTRIBUTES)] void clearAttributes();
    [id(DISPID_IHTMLELEMENT2_MERGEATTRIBUTES)] void mergeAttributes([in] IHTMLElement* mergeThis);
    [propput, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] void oncontextmenu(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] VARIANT oncontextmenu();
    [id(DISPID_IHTMLELEMENT2_INSERTADJACENTELEMENT)] IHTMLElement* insertAdjacentElement([in] BSTR where,[in] IHTMLElement* insertedElement);
    [id(DISPID_IHTMLELEMENT2_APPLYELEMENT)] IHTMLElement* applyElement([in] IHTMLElement* apply,[in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_GETADJACENTTEXT)] BSTR getAdjacentText([in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_REPLACEADJACENTTEXT)] BSTR replaceAdjacentText([in] BSTR where,[in] BSTR newText);
    [propget, id(DISPID_IHTMLELEMENT2_CANHAVECHILDREN)] VARIANT_BOOL canHaveChildren();
    [id(DISPID_IHTMLELEMENT2_ADDBEHAVIOR)] long addBehavior([in] BSTR bstrUrl,[optional, in] VARIANT* pvarFactory);
    [id(DISPID_IHTMLELEMENT2_REMOVEBEHAVIOR)] VARIANT_BOOL removeBehavior([in] long cookie);
    [propget, id(DISPID_IHTMLELEMENT2_RUNTIMESTYLE), nonbrowsable] IHTMLStyle* runtimeStyle();
    [propget, id(DISPID_IHTMLELEMENT2_BEHAVIORURNS)] IDispatch* behaviorUrns();
    [propput, id(DISPID_IHTMLELEMENT2_TAGURN)] void tagUrn(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_TAGURN)] BSTR tagUrn();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] void onbeforeeditfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] VARIANT onbeforeeditfocus();
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATEVALUE), hidden, restricted] long readyStateValue();
    [id(DISPID_IHTMLELEMENT2_GETELEMENTSBYTAGNAME)] IHTMLElementCollection* getElementsByTagName([in] BSTR v);
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUENUMBER), hidden] long uniqueNumber();
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUEID), hidden] BSTR uniqueID();
    [propget, id(DISPID_IHTMLDOMNODE_NODETYPE)] long nodeType();
    [propget, id(DISPID_IHTMLDOMNODE_PARENTNODE)] IHTMLDOMNode* parentNode();
    [id(DISPID_IHTMLDOMNODE_HASCHILDNODES)] VARIANT_BOOL hasChildNodes();
    [propget, id(DISPID_IHTMLDOMNODE_CHILDNODES)] IDispatch* childNodes();
    [propget, id(DISPID_IHTMLDOMNODE_ATTRIBUTES)] IDispatch* attributes();
    [id(DISPID_IHTMLDOMNODE_INSERTBEFORE)] IHTMLDOMNode* insertBefore([in] IHTMLDOMNode* newChild,[optional, in] VARIANT refChild);
    [id(DISPID_IHTMLDOMNODE_REMOVECHILD)] IHTMLDOMNode* removeChild([in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_REPLACECHILD)] IHTMLDOMNode* replaceChild([in] IHTMLDOMNode* newChild,[in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_CLONENODE)] IHTMLDOMNode* cloneNode([in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_REMOVENODE)] IHTMLDOMNode* removeNode([defaultvalue(0), in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_SWAPNODE)] IHTMLDOMNode* swapNode([in] IHTMLDOMNode* otherNode);
    [id(DISPID_IHTMLDOMNODE_REPLACENODE)] IHTMLDOMNode* replaceNode([in] IHTMLDOMNode* replacement);
    [id(DISPID_IHTMLDOMNODE_APPENDCHILD)] IHTMLDOMNode* appendChild([in] IHTMLDOMNode* newChild);
    [propget, id(DISPID_IHTMLDOMNODE_NODENAME)] BSTR nodeName();
    [propput, id(DISPID_IHTMLDOMNODE_NODEVALUE)] void nodeValue(VARIANT v);
    [propget, id(DISPID_IHTMLDOMNODE_NODEVALUE)] VARIANT nodeValue();
    [propget, id(DISPID_IHTMLDOMNODE_FIRSTCHILD)] IHTMLDOMNode* firstChild();
    [propget, id(DISPID_IHTMLDOMNODE_LASTCHILD)] IHTMLDOMNode* lastChild();
    [propget, id(DISPID_IHTMLDOMNODE_PREVIOUSSIBLING)] IHTMLDOMNode* previousSibling();
    [propget, id(DISPID_IHTMLDOMNODE_NEXTSIBLING)] IHTMLDOMNode* nextSibling();
    [propput, id(DISPID_IHTMLFORMELEMENT_ACTION), displaybind, bindable] void action(BSTR v);
    [propget, id(DISPID_IHTMLFORMELEMENT_ACTION), displaybind, bindable] BSTR action();
    [propput, id(DISPID_IHTMLFORMELEMENT_ENCODING), displaybind, bindable] void encoding(BSTR v);
    [propget, id(DISPID_IHTMLFORMELEMENT_ENCODING), displaybind, bindable] BSTR encoding();
    [propput, id(DISPID_IHTMLFORMELEMENT_METHOD), displaybind, bindable] void method(BSTR v);
    [propget, id(DISPID_IHTMLFORMELEMENT_METHOD), displaybind, bindable] BSTR method();
    [propget, id(DISPID_IHTMLFORMELEMENT_ELEMENTS)] IDispatch* elements();
    [propput, id(DISPID_IHTMLFORMELEMENT_TARGET), displaybind, bindable] void target(BSTR v);
    [propget, id(DISPID_IHTMLFORMELEMENT_TARGET), displaybind, bindable] BSTR target();
    [propput, id(DISPID_IHTMLFORMELEMENT_NAME), displaybind, bindable] void name(BSTR v);
    [propget, id(DISPID_IHTMLFORMELEMENT_NAME), displaybind, bindable] BSTR name();
    [propput, id(DISPID_IHTMLFORMELEMENT_ONSUBMIT), displaybind, bindable] void onsubmit(VARIANT v);
    [propget, id(DISPID_IHTMLFORMELEMENT_ONSUBMIT), displaybind, bindable] VARIANT onsubmit();
    [propput, id(DISPID_IHTMLFORMELEMENT_ONRESET), displaybind, bindable] void onreset(VARIANT v);
    [propget, id(DISPID_IHTMLFORMELEMENT_ONRESET), displaybind, bindable] VARIANT onreset();
    [id(DISPID_IHTMLFORMELEMENT_SUBMIT)] void submit();
    [id(DISPID_IHTMLFORMELEMENT_RESET)] void reset();
    [propput, id(DISPID_IHTMLFORMELEMENT_LENGTH)] void length(long v);
    [propget, id(DISPID_IHTMLFORMELEMENT_LENGTH)] long length();
    [propget, id(DISPID_IHTMLFORMELEMENT__NEWENUM), hidden, restricted] IUnknown* _newEnum();
    [id(DISPID_IHTMLFORMELEMENT_ITEM)] IDispatch* item([optional, in] VARIANT name,[optional, in] VARIANT index);
    [id(DISPID_IHTMLFORMELEMENT_TAGS)] IDispatch* tags([in] VARIANT tagName);
    [propput, id(DISPID_IHTMLFORMELEMENT2_ACCEPTCHARSET), displaybind, bindable] void acceptCharset(BSTR v);
    [propget, id(DISPID_IHTMLFORMELEMENT2_ACCEPTCHARSET), displaybind, bindable] BSTR acceptCharset();
    [id(DISPID_IHTMLFORMELEMENT2_URNS)] IDispatch* urns([in] VARIANT urn);
};
[
    uuid(3050f251-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLFormElement
{
    [default]           dispinterface DispHTMLFormElement;
    [source, default]   dispinterface HTMLFormElementEvents;
    [source]            dispinterface HTMLFormElementEvents2;
                        interface IHTMLElement;
                        interface IHTMLElement2;
                        interface IHTMLUniqueName;
                        interface IHTMLDOMNode;
                        interface IHTMLFormElement;
                        interface IHTMLFormElement2;
};
cpp_quote("EXTERN_C const GUID CLSID_CFormElement;")
[
    hidden,
    uuid(3050f612-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface HTMLControlElementEvents2
{
properties:
methods:
    [id(DISPID_HTMLELEMENTEVENTS2_ONHELP)] VARIANT_BOOL onhelp([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCLICK)] VARIANT_BOOL onclick([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDBLCLICK)] VARIANT_BOOL ondblclick([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONKEYPRESS)] VARIANT_BOOL onkeypress([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONKEYDOWN)] void onkeydown([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONKEYUP)] void onkeyup([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEOUT)] void onmouseout([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEOVER)] void onmouseover([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEMOVE)] void onmousemove([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEDOWN)] void onmousedown([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEUP)] void onmouseup([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONSELECTSTART)] VARIANT_BOOL onselectstart([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONFILTERCHANGE)] void onfilterchange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGSTART)] VARIANT_BOOL ondragstart([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFOREUPDATE)] VARIANT_BOOL onbeforeupdate([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONAFTERUPDATE)] void onafterupdate([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONERRORUPDATE)] VARIANT_BOOL onerrorupdate([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWEXIT)] VARIANT_BOOL onrowexit([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWENTER)] void onrowenter([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDATASETCHANGED)] void ondatasetchanged([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDATAAVAILABLE)] void ondataavailable([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDATASETCOMPLETE)] void ondatasetcomplete([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONLOSECAPTURE)] void onlosecapture([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONPROPERTYCHANGE)] void onpropertychange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONSCROLL)] void onscroll([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONFOCUS)] void onfocus([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBLUR)] void onblur([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONRESIZE)] void onresize([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAG)] VARIANT_BOOL ondrag([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGEND)] void ondragend([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGENTER)] VARIANT_BOOL ondragenter([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGOVER)] VARIANT_BOOL ondragover([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGLEAVE)] void ondragleave([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDROP)] VARIANT_BOOL ondrop([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFORECUT)] VARIANT_BOOL onbeforecut([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCUT)] VARIANT_BOOL oncut([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFORECOPY)] VARIANT_BOOL onbeforecopy([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCOPY)] VARIANT_BOOL oncopy([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFOREPASTE)] VARIANT_BOOL onbeforepaste([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONPASTE)] VARIANT_BOOL onpaste([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCONTEXTMENU)] VARIANT_BOOL oncontextmenu([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWSDELETE)] void onrowsdelete([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWSINSERTED)] void onrowsinserted([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCELLCHANGE)] void oncellchange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONREADYSTATECHANGE)] void onreadystatechange([in] IHTMLEventObj* pEvtObj);
};
[
    hidden,
    uuid(3050f4ea-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface HTMLControlElementEvents
{
properties:
methods:
    [id(DISPID_HTMLELEMENTEVENTS_ONHELP)] VARIANT_BOOL onhelp();
    [id(DISPID_HTMLELEMENTEVENTS_ONCLICK)] VARIANT_BOOL onclick();
    [id(DISPID_HTMLELEMENTEVENTS_ONDBLCLICK)] VARIANT_BOOL ondblclick();
    [id(DISPID_HTMLELEMENTEVENTS_ONKEYPRESS)] VARIANT_BOOL onkeypress();
    [id(DISPID_HTMLELEMENTEVENTS_ONKEYDOWN)] void onkeydown();
    [id(DISPID_HTMLELEMENTEVENTS_ONKEYUP)] void onkeyup();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEOUT)] void onmouseout();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEOVER)] void onmouseover();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEMOVE)] void onmousemove();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEDOWN)] void onmousedown();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEUP)] void onmouseup();
    [id(DISPID_HTMLELEMENTEVENTS_ONSELECTSTART)] VARIANT_BOOL onselectstart();
    [id(DISPID_HTMLELEMENTEVENTS_ONFILTERCHANGE)] void onfilterchange();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGSTART)] VARIANT_BOOL ondragstart();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREUPDATE)] VARIANT_BOOL onbeforeupdate();
    [id(DISPID_HTMLELEMENTEVENTS_ONAFTERUPDATE)] void onafterupdate();
    [id(DISPID_HTMLELEMENTEVENTS_ONERRORUPDATE)] VARIANT_BOOL onerrorupdate();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWEXIT)] VARIANT_BOOL onrowexit();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWENTER)] void onrowenter();
    [id(DISPID_HTMLELEMENTEVENTS_ONDATASETCHANGED)] void ondatasetchanged();
    [id(DISPID_HTMLELEMENTEVENTS_ONDATAAVAILABLE)] void ondataavailable();
    [id(DISPID_HTMLELEMENTEVENTS_ONDATASETCOMPLETE)] void ondatasetcomplete();
    [id(DISPID_HTMLELEMENTEVENTS_ONLOSECAPTURE)] void onlosecapture();
    [id(DISPID_HTMLELEMENTEVENTS_ONPROPERTYCHANGE)] void onpropertychange();
    [id(DISPID_HTMLELEMENTEVENTS_ONSCROLL)] void onscroll();
    [id(DISPID_HTMLELEMENTEVENTS_ONFOCUS)] void onfocus();
    [id(DISPID_HTMLELEMENTEVENTS_ONBLUR)] void onblur();
    [id(DISPID_HTMLELEMENTEVENTS_ONRESIZE)] void onresize();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAG)] VARIANT_BOOL ondrag();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGEND)] void ondragend();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGENTER)] VARIANT_BOOL ondragenter();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGOVER)] VARIANT_BOOL ondragover();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGLEAVE)] void ondragleave();
    [id(DISPID_HTMLELEMENTEVENTS_ONDROP)] VARIANT_BOOL ondrop();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFORECUT)] VARIANT_BOOL onbeforecut();
    [id(DISPID_HTMLELEMENTEVENTS_ONCUT)] VARIANT_BOOL oncut();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFORECOPY)] VARIANT_BOOL onbeforecopy();
    [id(DISPID_HTMLELEMENTEVENTS_ONCOPY)] VARIANT_BOOL oncopy();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREPASTE)] VARIANT_BOOL onbeforepaste();
    [id(DISPID_HTMLELEMENTEVENTS_ONPASTE)] VARIANT_BOOL onpaste();
    [id(DISPID_HTMLELEMENTEVENTS_ONCONTEXTMENU)] VARIANT_BOOL oncontextmenu();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWSDELETE)] void onrowsdelete();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWSINSERTED)] void onrowsinserted();
    [id(DISPID_HTMLELEMENTEVENTS_ONCELLCHANGE)] void oncellchange();
    [id(DISPID_HTMLELEMENTEVENTS_ONREADYSTATECHANGE)] void onreadystatechange();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREEDITFOCUS)] void onbeforeeditfocus();
};
typedef enum _htmlStart
{
    htmlStartfileopen = 0,
    htmlStartmouseover = 1,
    htmlStart_Max = 2147483647L
} htmlStart;

[
    odl,
    oleautomation,
    dual,
    uuid(3050f4e9-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLControlElement : IDispatch
{
    [propput, id(DISPID_IHTMLCONTROLELEMENT_TABINDEX), displaybind, bindable] HRESULT tabIndex([in] short v);
    [propget, id(DISPID_IHTMLCONTROLELEMENT_TABINDEX), displaybind, bindable] HRESULT tabIndex([retval, out] short * p);
    [id(DISPID_IHTMLCONTROLELEMENT_FOCUS)] HRESULT focus();
    [propput, id(DISPID_IHTMLCONTROLELEMENT_ACCESSKEY), displaybind, bindable] HRESULT accessKey([in] BSTR v);
    [propget, id(DISPID_IHTMLCONTROLELEMENT_ACCESSKEY), displaybind, bindable] HRESULT accessKey([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLCONTROLELEMENT_ONBLUR), displaybind, bindable] HRESULT onblur([in] VARIANT v);
    [propget, id(DISPID_IHTMLCONTROLELEMENT_ONBLUR), displaybind, bindable] HRESULT onblur([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLCONTROLELEMENT_ONFOCUS), displaybind, bindable] HRESULT onfocus([in] VARIANT v);
    [propget, id(DISPID_IHTMLCONTROLELEMENT_ONFOCUS), displaybind, bindable] HRESULT onfocus([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLCONTROLELEMENT_ONRESIZE), displaybind, bindable] HRESULT onresize([in] VARIANT v);
    [propget, id(DISPID_IHTMLCONTROLELEMENT_ONRESIZE), displaybind, bindable] HRESULT onresize([retval, out] VARIANT * p);
    [id(DISPID_IHTMLCONTROLELEMENT_BLUR)] HRESULT blur();
    [id(DISPID_IHTMLCONTROLELEMENT_ADDFILTER)] HRESULT addFilter([in] IUnknown* pUnk);
    [id(DISPID_IHTMLCONTROLELEMENT_REMOVEFILTER)] HRESULT removeFilter([in] IUnknown* pUnk);
    [propget, id(DISPID_IHTMLCONTROLELEMENT_CLIENTHEIGHT), displaybind, bindable] HRESULT clientHeight([retval, out] long * p);
    [propget, id(DISPID_IHTMLCONTROLELEMENT_CLIENTWIDTH), displaybind, bindable] HRESULT clientWidth([retval, out] long * p);
    [propget, id(DISPID_IHTMLCONTROLELEMENT_CLIENTTOP), displaybind, bindable] HRESULT clientTop([retval, out] long * p);
    [propget, id(DISPID_IHTMLCONTROLELEMENT_CLIENTLEFT), displaybind, bindable] HRESULT clientLeft([retval, out] long * p);
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f218-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLTextElement : IDispatch
{
};
[
    hidden,
    uuid(3050f537-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTMLTextElement
{
properties:
methods:
    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)] void setAttribute([in] BSTR strAttributeName,[in] VARIANT AttributeValue,[defaultvalue(1), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)] VARIANT getAttribute([in] BSTR strAttributeName,[defaultvalue(0), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)] VARIANT_BOOL removeAttribute([in] BSTR strAttributeName,[defaultvalue(1), in] LONG lFlags);
    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] void className(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] BSTR className();
    [propput, id(DISPID_IHTMLELEMENT_ID), bindable] void id(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_ID), bindable] BSTR id();
    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)] BSTR tagName();
    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)] IHTMLElement* parentElement();
    [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable] IHTMLStyle* style();
    [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] void onhelp(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] VARIANT onhelp();
    [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] void onclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] VARIANT onclick();
    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] void ondblclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] VARIANT ondblclick();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] void onkeydown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] VARIANT onkeydown();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] void onkeyup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] VARIANT onkeyup();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] void onkeypress(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] VARIANT onkeypress();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] void onmouseout(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] VARIANT onmouseout();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] void onmouseover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] VARIANT onmouseover();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] void onmousemove(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] VARIANT onmousemove();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] void onmousedown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] VARIANT onmousedown();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] void onmouseup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] VARIANT onmouseup();
    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)] IDispatch* document();
    [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] void title(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] BSTR title();
    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] void language(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] BSTR language();
    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] void onselectstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] VARIANT onselectstart();
    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)] void scrollIntoView([optional, in] VARIANT varargStart);
    [id(DISPID_IHTMLELEMENT_CONTAINS)] VARIANT_BOOL contains([in] IHTMLElement* pChild);
    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable] long sourceIndex();
    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)] VARIANT recordNumber();
    [propput, id(DISPID_IHTMLELEMENT_LANG)] void lang(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANG)] BSTR lang();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)] long offsetLeft();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)] long offsetTop();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)] long offsetWidth();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)] long offsetHeight();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)] IHTMLElement* offsetParent();
    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)] void innerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)] BSTR innerHTML();
    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)] void innerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)] BSTR innerText();
    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)] void outerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)] BSTR outerHTML();
    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)] void outerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)] BSTR outerText();
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)] void insertAdjacentHTML([in] BSTR where,[in] BSTR html);
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)] void insertAdjacentText([in] BSTR where,[in] BSTR text);
    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)] IHTMLElement* parentTextEdit();
    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)] VARIANT_BOOL isTextEdit();
    [id(DISPID_IHTMLELEMENT_CLICK)] void click();
    [propget, id(DISPID_IHTMLELEMENT_FILTERS)] IHTMLFiltersCollection* filters();
    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] void ondragstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] VARIANT ondragstart();
    [id(DISPID_IHTMLELEMENT_TOSTRING)] BSTR toString();
    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] void onbeforeupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] VARIANT onbeforeupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] void onafterupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] VARIANT onafterupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] void onerrorupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] VARIANT onerrorupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] void onrowexit(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] VARIANT onrowexit();
    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] void onrowenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] VARIANT onrowenter();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] void ondatasetchanged(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] VARIANT ondatasetchanged();
    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] void ondataavailable(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] VARIANT ondataavailable();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] void ondatasetcomplete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] VARIANT ondatasetcomplete();
    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] void onfilterchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] VARIANT onfilterchange();
    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)] IDispatch* children();
    [propget, id(DISPID_IHTMLELEMENT_ALL)] IDispatch* all();
    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)] BSTR scopeName();
    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)] void setCapture([defaultvalue(-1), in] VARIANT_BOOL containerCapture);
    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)] void releaseCapture();
    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] void onlosecapture(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] VARIANT onlosecapture();
    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)] BSTR componentFromPoint([in] long x,[in] long y);
    [id(DISPID_IHTMLELEMENT2_DOSCROLL)] void doScroll([optional, in] VARIANT component);
    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] void onscroll(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] VARIANT onscroll();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] void ondrag(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] VARIANT ondrag();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] void ondragend(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] VARIANT ondragend();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] void ondragenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] VARIANT ondragenter();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] void ondragover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] VARIANT ondragover();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] void ondragleave(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] VARIANT ondragleave();
    [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] void ondrop(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] VARIANT ondrop();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] void onbeforecut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] VARIANT onbeforecut();
    [propput, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] void oncut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] VARIANT oncut();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] void onbeforecopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] VARIANT onbeforecopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] void oncopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] VARIANT oncopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] void onbeforepaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] VARIANT onbeforepaste();
    [propput, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] void onpaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] VARIANT onpaste();
    [propget, id(DISPID_IHTMLELEMENT2_CURRENTSTYLE), nonbrowsable] IHTMLCurrentStyle* currentStyle();
    [propput, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] void onpropertychange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] VARIANT onpropertychange();
    [id(DISPID_IHTMLELEMENT2_GETCLIENTRECTS)] IHTMLRectCollection* getClientRects();
    [id(DISPID_IHTMLELEMENT2_GETBOUNDINGCLIENTRECT)] IHTMLRect* getBoundingClientRect();
    [id(DISPID_IHTMLELEMENT2_SETEXPRESSION)] void setExpression([in] BSTR propname,[in] BSTR expression,[defaultvalue(""), in] BSTR language);
    [id(DISPID_IHTMLELEMENT2_GETEXPRESSION)] VARIANT getExpression([in] BSTR propname);
    [id(DISPID_IHTMLELEMENT2_REMOVEEXPRESSION)] VARIANT_BOOL removeExpression([in] BSTR propname);
    [propput, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] void tabIndex(short v);
    [propget, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] short tabIndex();
    [id(DISPID_IHTMLELEMENT2_FOCUS)] void focus();
    [propput, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] void accessKey(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] BSTR accessKey();
    [propput, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] void onblur(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] VARIANT onblur();
    [propput, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] void onfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] VARIANT onfocus();
    [propput, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] void onresize(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] VARIANT onresize();
    [id(DISPID_IHTMLELEMENT2_BLUR)] void blur();
    [id(DISPID_IHTMLELEMENT2_ADDFILTER)] void addFilter([in] IUnknown* pUnk);
    [id(DISPID_IHTMLELEMENT2_REMOVEFILTER)] void removeFilter([in] IUnknown* pUnk);
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTHEIGHT), displaybind, bindable] long clientHeight();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTWIDTH), displaybind, bindable] long clientWidth();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTTOP), displaybind, bindable] long clientTop();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTLEFT), displaybind, bindable] long clientLeft();
    [id(DISPID_IHTMLELEMENT2_ATTACHEVENT)] VARIANT_BOOL attachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [id(DISPID_IHTMLELEMENT2_DETACHEVENT)] void detachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATE)] VARIANT readyState();
    [propput, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] void onreadystatechange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] VARIANT onreadystatechange();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] void onrowsdelete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] VARIANT onrowsdelete();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] void onrowsinserted(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] VARIANT onrowsinserted();
    [propput, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] void oncellchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] VARIANT oncellchange();
    [propput, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] void dir(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] BSTR dir();
    [id(DISPID_IHTMLELEMENT2_CREATECONTROLRANGE)] IDispatch* createControlRange();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLHEIGHT), displaybind, bindable] long scrollHeight();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLWIDTH), displaybind, bindable] long scrollWidth();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] void scrollTop(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] long scrollTop();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] void scrollLeft(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] long scrollLeft();
    [id(DISPID_IHTMLELEMENT2_CLEARATTRIBUTES)] void clearAttributes();
    [id(DISPID_IHTMLELEMENT2_MERGEATTRIBUTES)] void mergeAttributes([in] IHTMLElement* mergeThis);
    [propput, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] void oncontextmenu(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] VARIANT oncontextmenu();
    [id(DISPID_IHTMLELEMENT2_INSERTADJACENTELEMENT)] IHTMLElement* insertAdjacentElement([in] BSTR where,[in] IHTMLElement* insertedElement);
    [id(DISPID_IHTMLELEMENT2_APPLYELEMENT)] IHTMLElement* applyElement([in] IHTMLElement* apply,[in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_GETADJACENTTEXT)] BSTR getAdjacentText([in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_REPLACEADJACENTTEXT)] BSTR replaceAdjacentText([in] BSTR where,[in] BSTR newText);
    [propget, id(DISPID_IHTMLELEMENT2_CANHAVECHILDREN)] VARIANT_BOOL canHaveChildren();
    [id(DISPID_IHTMLELEMENT2_ADDBEHAVIOR)] long addBehavior([in] BSTR bstrUrl,[optional, in] VARIANT* pvarFactory);
    [id(DISPID_IHTMLELEMENT2_REMOVEBEHAVIOR)] VARIANT_BOOL removeBehavior([in] long cookie);
    [propget, id(DISPID_IHTMLELEMENT2_RUNTIMESTYLE), nonbrowsable] IHTMLStyle* runtimeStyle();
    [propget, id(DISPID_IHTMLELEMENT2_BEHAVIORURNS)] IDispatch* behaviorUrns();
    [propput, id(DISPID_IHTMLELEMENT2_TAGURN)] void tagUrn(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_TAGURN)] BSTR tagUrn();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] void onbeforeeditfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] VARIANT onbeforeeditfocus();
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATEVALUE), hidden, restricted] long readyStateValue();
    [id(DISPID_IHTMLELEMENT2_GETELEMENTSBYTAGNAME)] IHTMLElementCollection* getElementsByTagName([in] BSTR v);
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUENUMBER), hidden] long uniqueNumber();
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUEID), hidden] BSTR uniqueID();
    [propget, id(DISPID_IHTMLDOMNODE_NODETYPE)] long nodeType();
    [propget, id(DISPID_IHTMLDOMNODE_PARENTNODE)] IHTMLDOMNode* parentNode();
    [id(DISPID_IHTMLDOMNODE_HASCHILDNODES)] VARIANT_BOOL hasChildNodes();
    [propget, id(DISPID_IHTMLDOMNODE_CHILDNODES)] IDispatch* childNodes();
    [propget, id(DISPID_IHTMLDOMNODE_ATTRIBUTES)] IDispatch* attributes();
    [id(DISPID_IHTMLDOMNODE_INSERTBEFORE)] IHTMLDOMNode* insertBefore([in] IHTMLDOMNode* newChild,[optional, in] VARIANT refChild);
    [id(DISPID_IHTMLDOMNODE_REMOVECHILD)] IHTMLDOMNode* removeChild([in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_REPLACECHILD)] IHTMLDOMNode* replaceChild([in] IHTMLDOMNode* newChild,[in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_CLONENODE)] IHTMLDOMNode* cloneNode([in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_REMOVENODE)] IHTMLDOMNode* removeNode([defaultvalue(0), in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_SWAPNODE)] IHTMLDOMNode* swapNode([in] IHTMLDOMNode* otherNode);
    [id(DISPID_IHTMLDOMNODE_REPLACENODE)] IHTMLDOMNode* replaceNode([in] IHTMLDOMNode* replacement);
    [id(DISPID_IHTMLDOMNODE_APPENDCHILD)] IHTMLDOMNode* appendChild([in] IHTMLDOMNode* newChild);
    [propget, id(DISPID_IHTMLDOMNODE_NODENAME)] BSTR nodeName();
    [propput, id(DISPID_IHTMLDOMNODE_NODEVALUE)] void nodeValue(VARIANT v);
    [propget, id(DISPID_IHTMLDOMNODE_NODEVALUE)] VARIANT nodeValue();
    [propget, id(DISPID_IHTMLDOMNODE_FIRSTCHILD)] IHTMLDOMNode* firstChild();
    [propget, id(DISPID_IHTMLDOMNODE_LASTCHILD)] IHTMLDOMNode* lastChild();
    [propget, id(DISPID_IHTMLDOMNODE_PREVIOUSSIBLING)] IHTMLDOMNode* previousSibling();
    [propget, id(DISPID_IHTMLDOMNODE_NEXTSIBLING)] IHTMLDOMNode* nextSibling();
};
[
    uuid(3050f26a-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLTextElement
{
    [default]           dispinterface DispHTMLTextElement;
    [source, default]   dispinterface HTMLElementEvents;
    [source]            dispinterface HTMLElementEvents2;
                        interface IHTMLElement;
                        interface IHTMLElement2;
                        interface IHTMLUniqueName;
                        interface IHTMLDOMNode;
                        interface IHTMLTextElement;
};
cpp_quote("EXTERN_C const GUID CLSID_CTextElement;")
[
    hidden,
    uuid(3050f624-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface HTMLTextContainerEvents2
{
properties:
methods:
    [id(DISPID_HTMLELEMENTEVENTS2_ONHELP)] VARIANT_BOOL onhelp([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCLICK)] VARIANT_BOOL onclick([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDBLCLICK)] VARIANT_BOOL ondblclick([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONKEYPRESS)] VARIANT_BOOL onkeypress([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONKEYDOWN)] void onkeydown([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONKEYUP)] void onkeyup([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEOUT)] void onmouseout([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEOVER)] void onmouseover([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEMOVE)] void onmousemove([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEDOWN)] void onmousedown([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEUP)] void onmouseup([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONSELECTSTART)] VARIANT_BOOL onselectstart([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONFILTERCHANGE)] void onfilterchange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGSTART)] VARIANT_BOOL ondragstart([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFOREUPDATE)] VARIANT_BOOL onbeforeupdate([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONAFTERUPDATE)] void onafterupdate([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONERRORUPDATE)] VARIANT_BOOL onerrorupdate([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWEXIT)] VARIANT_BOOL onrowexit([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWENTER)] void onrowenter([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDATASETCHANGED)] void ondatasetchanged([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDATAAVAILABLE)] void ondataavailable([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDATASETCOMPLETE)] void ondatasetcomplete([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONLOSECAPTURE)] void onlosecapture([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONPROPERTYCHANGE)] void onpropertychange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONSCROLL)] void onscroll([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONFOCUS)] void onfocus([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBLUR)] void onblur([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONRESIZE)] void onresize([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAG)] VARIANT_BOOL ondrag([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGEND)] void ondragend([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGENTER)] VARIANT_BOOL ondragenter([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGOVER)] VARIANT_BOOL ondragover([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGLEAVE)] void ondragleave([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDROP)] VARIANT_BOOL ondrop([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFORECUT)] VARIANT_BOOL onbeforecut([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCUT)] VARIANT_BOOL oncut([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFORECOPY)] VARIANT_BOOL onbeforecopy([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCOPY)] VARIANT_BOOL oncopy([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFOREPASTE)] VARIANT_BOOL onbeforepaste([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONPASTE)] VARIANT_BOOL onpaste([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCONTEXTMENU)] VARIANT_BOOL oncontextmenu([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWSDELETE)] void onrowsdelete([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWSINSERTED)] void onrowsinserted([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCELLCHANGE)] void oncellchange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONREADYSTATECHANGE)] void onreadystatechange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLTEXTCONTAINEREVENTS2_ONCHANGE)] void onchange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLTEXTCONTAINEREVENTS2_ONSELECT)] void onselect([in] IHTMLEventObj* pEvtObj);
};
[
    hidden,
    uuid(1FF6AA72-5842-11cf-A707-00AA00C0098D)
]
dispinterface HTMLTextContainerEvents
{
properties:
methods:
    [id(DISPID_HTMLELEMENTEVENTS_ONHELP)] VARIANT_BOOL onhelp();
    [id(DISPID_HTMLELEMENTEVENTS_ONCLICK)] VARIANT_BOOL onclick();
    [id(DISPID_HTMLELEMENTEVENTS_ONDBLCLICK)] VARIANT_BOOL ondblclick();
    [id(DISPID_HTMLELEMENTEVENTS_ONKEYPRESS)] VARIANT_BOOL onkeypress();
    [id(DISPID_HTMLELEMENTEVENTS_ONKEYDOWN)] void onkeydown();
    [id(DISPID_HTMLELEMENTEVENTS_ONKEYUP)] void onkeyup();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEOUT)] void onmouseout();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEOVER)] void onmouseover();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEMOVE)] void onmousemove();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEDOWN)] void onmousedown();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEUP)] void onmouseup();
    [id(DISPID_HTMLELEMENTEVENTS_ONSELECTSTART)] VARIANT_BOOL onselectstart();
    [id(DISPID_HTMLELEMENTEVENTS_ONFILTERCHANGE)] void onfilterchange();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGSTART)] VARIANT_BOOL ondragstart();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREUPDATE)] VARIANT_BOOL onbeforeupdate();
    [id(DISPID_HTMLELEMENTEVENTS_ONAFTERUPDATE)] void onafterupdate();
    [id(DISPID_HTMLELEMENTEVENTS_ONERRORUPDATE)] VARIANT_BOOL onerrorupdate();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWEXIT)] VARIANT_BOOL onrowexit();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWENTER)] void onrowenter();
    [id(DISPID_HTMLELEMENTEVENTS_ONDATASETCHANGED)] void ondatasetchanged();
    [id(DISPID_HTMLELEMENTEVENTS_ONDATAAVAILABLE)] void ondataavailable();
    [id(DISPID_HTMLELEMENTEVENTS_ONDATASETCOMPLETE)] void ondatasetcomplete();
    [id(DISPID_HTMLELEMENTEVENTS_ONLOSECAPTURE)] void onlosecapture();
    [id(DISPID_HTMLELEMENTEVENTS_ONPROPERTYCHANGE)] void onpropertychange();
    [id(DISPID_HTMLELEMENTEVENTS_ONSCROLL)] void onscroll();
    [id(DISPID_HTMLELEMENTEVENTS_ONFOCUS)] void onfocus();
    [id(DISPID_HTMLELEMENTEVENTS_ONBLUR)] void onblur();
    [id(DISPID_HTMLELEMENTEVENTS_ONRESIZE)] void onresize();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAG)] VARIANT_BOOL ondrag();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGEND)] void ondragend();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGENTER)] VARIANT_BOOL ondragenter();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGOVER)] VARIANT_BOOL ondragover();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGLEAVE)] void ondragleave();
    [id(DISPID_HTMLELEMENTEVENTS_ONDROP)] VARIANT_BOOL ondrop();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFORECUT)] VARIANT_BOOL onbeforecut();
    [id(DISPID_HTMLELEMENTEVENTS_ONCUT)] VARIANT_BOOL oncut();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFORECOPY)] VARIANT_BOOL onbeforecopy();
    [id(DISPID_HTMLELEMENTEVENTS_ONCOPY)] VARIANT_BOOL oncopy();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREPASTE)] VARIANT_BOOL onbeforepaste();
    [id(DISPID_HTMLELEMENTEVENTS_ONPASTE)] VARIANT_BOOL onpaste();
    [id(DISPID_HTMLELEMENTEVENTS_ONCONTEXTMENU)] VARIANT_BOOL oncontextmenu();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWSDELETE)] void onrowsdelete();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWSINSERTED)] void onrowsinserted();
    [id(DISPID_HTMLELEMENTEVENTS_ONCELLCHANGE)] void oncellchange();
    [id(DISPID_HTMLELEMENTEVENTS_ONREADYSTATECHANGE)] void onreadystatechange();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREEDITFOCUS)] void onbeforeeditfocus();
    [id(DISPID_HTMLTEXTCONTAINEREVENTS_ONCHANGE)] void onchange();
    [id(DISPID_HTMLTEXTCONTAINEREVENTS_ONSELECT)] void onselect();
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f230-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLTextContainer : IDispatch
{
    [id(DISPID_IHTMLTEXTCONTAINER_CREATECONTROLRANGE)] HRESULT createControlRange([retval, out] IDispatch** range);
    [propget, id(DISPID_IHTMLTEXTCONTAINER_SCROLLHEIGHT), displaybind, bindable] HRESULT scrollHeight([retval, out] long * p);
    [propget, id(DISPID_IHTMLTEXTCONTAINER_SCROLLWIDTH), displaybind, bindable] HRESULT scrollWidth([retval, out] long * p);
    [propput, id(DISPID_IHTMLTEXTCONTAINER_SCROLLTOP), displaybind, bindable] HRESULT scrollTop([in] long v);
    [propget, id(DISPID_IHTMLTEXTCONTAINER_SCROLLTOP), displaybind, bindable] HRESULT scrollTop([retval, out] long * p);
    [propput, id(DISPID_IHTMLTEXTCONTAINER_SCROLLLEFT), displaybind, bindable] HRESULT scrollLeft([in] long v);
    [propget, id(DISPID_IHTMLTEXTCONTAINER_SCROLLLEFT), displaybind, bindable] HRESULT scrollLeft([retval, out] long * p);
    [propput, id(DISPID_IHTMLTEXTCONTAINER_ONSCROLL), displaybind, bindable] HRESULT onscroll([in] VARIANT v);
    [propget, id(DISPID_IHTMLTEXTCONTAINER_ONSCROLL), displaybind, bindable] HRESULT onscroll([retval, out] VARIANT * p);
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f29c-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLControlRange : IDispatch
{
    [id(DISPID_IHTMLCONTROLRANGE_SELECT)] HRESULT select();
    [id(DISPID_IHTMLCONTROLRANGE_ADD)] HRESULT add([in] IHTMLControlElement* item);
    [id(DISPID_IHTMLCONTROLRANGE_REMOVE)] HRESULT remove([in] long index);
    [id(DISPID_IHTMLCONTROLRANGE_ITEM)] HRESULT item([in] long index,[retval, out] IHTMLElement** pdisp);
    [id(DISPID_IHTMLCONTROLRANGE_SCROLLINTOVIEW)] HRESULT scrollIntoView([optional, in] VARIANT varargStart);
    [id(DISPID_IHTMLCONTROLRANGE_QUERYCOMMANDSUPPORTED)] HRESULT queryCommandSupported([in] BSTR cmdID,[retval, out] VARIANT_BOOL* pfRet);
    [id(DISPID_IHTMLCONTROLRANGE_QUERYCOMMANDENABLED)] HRESULT queryCommandEnabled([in] BSTR cmdID,[retval, out] VARIANT_BOOL* pfRet);
    [id(DISPID_IHTMLCONTROLRANGE_QUERYCOMMANDSTATE)] HRESULT queryCommandState([in] BSTR cmdID,[retval, out] VARIANT_BOOL* pfRet);
    [id(DISPID_IHTMLCONTROLRANGE_QUERYCOMMANDINDETERM)] HRESULT queryCommandIndeterm([in] BSTR cmdID,[retval, out] VARIANT_BOOL* pfRet);
    [id(DISPID_IHTMLCONTROLRANGE_QUERYCOMMANDTEXT)] HRESULT queryCommandText([in] BSTR cmdID,[retval, out] BSTR* pcmdText);
    [id(DISPID_IHTMLCONTROLRANGE_QUERYCOMMANDVALUE)] HRESULT queryCommandValue([in] BSTR cmdID,[retval, out] VARIANT* pcmdValue);
    [id(DISPID_IHTMLCONTROLRANGE_EXECCOMMAND)] HRESULT execCommand([in] BSTR cmdID,[defaultvalue(0), in] VARIANT_BOOL showUI,[optional, in] VARIANT value,[retval, out] VARIANT_BOOL* pfRet);
    [id(DISPID_IHTMLCONTROLRANGE_EXECCOMMANDSHOWHELP)] HRESULT execCommandShowHelp([in] BSTR cmdID,[retval, out] VARIANT_BOOL* pfRet);
    [id(DISPID_IHTMLCONTROLRANGE_COMMONPARENTELEMENT)] HRESULT commonParentElement([retval, out] IHTMLElement** parent);
    [propget, id(DISPID_IHTMLCONTROLRANGE_LENGTH)] HRESULT length([retval, out] long * p);
};
[
    hidden,
    uuid(3050f616-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface HTMLImgEvents2
{
properties:
methods:
    [id(DISPID_HTMLELEMENTEVENTS2_ONHELP)] VARIANT_BOOL onhelp([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCLICK)] VARIANT_BOOL onclick([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDBLCLICK)] VARIANT_BOOL ondblclick([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONKEYPRESS)] VARIANT_BOOL onkeypress([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONKEYDOWN)] void onkeydown([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONKEYUP)] void onkeyup([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEOUT)] void onmouseout([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEOVER)] void onmouseover([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEMOVE)] void onmousemove([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEDOWN)] void onmousedown([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEUP)] void onmouseup([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONSELECTSTART)] VARIANT_BOOL onselectstart([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONFILTERCHANGE)] void onfilterchange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGSTART)] VARIANT_BOOL ondragstart([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFOREUPDATE)] VARIANT_BOOL onbeforeupdate([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONAFTERUPDATE)] void onafterupdate([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONERRORUPDATE)] VARIANT_BOOL onerrorupdate([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWEXIT)] VARIANT_BOOL onrowexit([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWENTER)] void onrowenter([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDATASETCHANGED)] void ondatasetchanged([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDATAAVAILABLE)] void ondataavailable([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDATASETCOMPLETE)] void ondatasetcomplete([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONLOSECAPTURE)] void onlosecapture([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONPROPERTYCHANGE)] void onpropertychange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONSCROLL)] void onscroll([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONFOCUS)] void onfocus([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBLUR)] void onblur([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONRESIZE)] void onresize([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAG)] VARIANT_BOOL ondrag([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGEND)] void ondragend([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGENTER)] VARIANT_BOOL ondragenter([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGOVER)] VARIANT_BOOL ondragover([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGLEAVE)] void ondragleave([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDROP)] VARIANT_BOOL ondrop([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFORECUT)] VARIANT_BOOL onbeforecut([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCUT)] VARIANT_BOOL oncut([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFORECOPY)] VARIANT_BOOL onbeforecopy([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCOPY)] VARIANT_BOOL oncopy([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFOREPASTE)] VARIANT_BOOL onbeforepaste([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONPASTE)] VARIANT_BOOL onpaste([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCONTEXTMENU)] VARIANT_BOOL oncontextmenu([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWSDELETE)] void onrowsdelete([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWSINSERTED)] void onrowsinserted([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCELLCHANGE)] void oncellchange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONREADYSTATECHANGE)] void onreadystatechange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLIMGEVENTS2_ONLOAD)] void onload([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLIMGEVENTS2_ONERROR)] void onerror([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLIMGEVENTS2_ONABORT)] void onabort([in] IHTMLEventObj* pEvtObj);
};
[
    hidden,
    uuid(3050f25b-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface HTMLImgEvents
{
properties:
methods:
    [id(DISPID_HTMLELEMENTEVENTS_ONHELP)] VARIANT_BOOL onhelp();
    [id(DISPID_HTMLELEMENTEVENTS_ONCLICK)] VARIANT_BOOL onclick();
    [id(DISPID_HTMLELEMENTEVENTS_ONDBLCLICK)] VARIANT_BOOL ondblclick();
    [id(DISPID_HTMLELEMENTEVENTS_ONKEYPRESS)] VARIANT_BOOL onkeypress();
    [id(DISPID_HTMLELEMENTEVENTS_ONKEYDOWN)] void onkeydown();
    [id(DISPID_HTMLELEMENTEVENTS_ONKEYUP)] void onkeyup();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEOUT)] void onmouseout();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEOVER)] void onmouseover();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEMOVE)] void onmousemove();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEDOWN)] void onmousedown();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEUP)] void onmouseup();
    [id(DISPID_HTMLELEMENTEVENTS_ONSELECTSTART)] VARIANT_BOOL onselectstart();
    [id(DISPID_HTMLELEMENTEVENTS_ONFILTERCHANGE)] void onfilterchange();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGSTART)] VARIANT_BOOL ondragstart();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREUPDATE)] VARIANT_BOOL onbeforeupdate();
    [id(DISPID_HTMLELEMENTEVENTS_ONAFTERUPDATE)] void onafterupdate();
    [id(DISPID_HTMLELEMENTEVENTS_ONERRORUPDATE)] VARIANT_BOOL onerrorupdate();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWEXIT)] VARIANT_BOOL onrowexit();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWENTER)] void onrowenter();
    [id(DISPID_HTMLELEMENTEVENTS_ONDATASETCHANGED)] void ondatasetchanged();
    [id(DISPID_HTMLELEMENTEVENTS_ONDATAAVAILABLE)] void ondataavailable();
    [id(DISPID_HTMLELEMENTEVENTS_ONDATASETCOMPLETE)] void ondatasetcomplete();
    [id(DISPID_HTMLELEMENTEVENTS_ONLOSECAPTURE)] void onlosecapture();
    [id(DISPID_HTMLELEMENTEVENTS_ONPROPERTYCHANGE)] void onpropertychange();
    [id(DISPID_HTMLELEMENTEVENTS_ONSCROLL)] void onscroll();
    [id(DISPID_HTMLELEMENTEVENTS_ONFOCUS)] void onfocus();
    [id(DISPID_HTMLELEMENTEVENTS_ONBLUR)] void onblur();
    [id(DISPID_HTMLELEMENTEVENTS_ONRESIZE)] void onresize();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAG)] VARIANT_BOOL ondrag();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGEND)] void ondragend();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGENTER)] VARIANT_BOOL ondragenter();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGOVER)] VARIANT_BOOL ondragover();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGLEAVE)] void ondragleave();
    [id(DISPID_HTMLELEMENTEVENTS_ONDROP)] VARIANT_BOOL ondrop();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFORECUT)] VARIANT_BOOL onbeforecut();
    [id(DISPID_HTMLELEMENTEVENTS_ONCUT)] VARIANT_BOOL oncut();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFORECOPY)] VARIANT_BOOL onbeforecopy();
    [id(DISPID_HTMLELEMENTEVENTS_ONCOPY)] VARIANT_BOOL oncopy();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREPASTE)] VARIANT_BOOL onbeforepaste();
    [id(DISPID_HTMLELEMENTEVENTS_ONPASTE)] VARIANT_BOOL onpaste();
    [id(DISPID_HTMLELEMENTEVENTS_ONCONTEXTMENU)] VARIANT_BOOL oncontextmenu();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWSDELETE)] void onrowsdelete();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWSINSERTED)] void onrowsinserted();
    [id(DISPID_HTMLELEMENTEVENTS_ONCELLCHANGE)] void oncellchange();
    [id(DISPID_HTMLELEMENTEVENTS_ONREADYSTATECHANGE)] void onreadystatechange();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREEDITFOCUS)] void onbeforeeditfocus();
    [id(DISPID_HTMLIMGEVENTS_ONLOAD)] void onload();
    [id(DISPID_HTMLIMGEVENTS_ONERROR)] void onerror();
    [id(DISPID_HTMLIMGEVENTS_ONABORT)] void onabort();
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f240-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLImgElement : IDispatch
{
    [propput, id(DISPID_IHTMLIMGELEMENT_ISMAP), displaybind, bindable] HRESULT isMap([in] VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLIMGELEMENT_ISMAP), displaybind, bindable] HRESULT isMap([retval, out] VARIANT_BOOL * p);
    [propput, id(DISPID_IHTMLIMGELEMENT_USEMAP), displaybind, bindable] HRESULT useMap([in] BSTR v);
    [propget, id(DISPID_IHTMLIMGELEMENT_USEMAP), displaybind, bindable] HRESULT useMap([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLIMGELEMENT_MIMETYPE)] HRESULT mimeType([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLIMGELEMENT_FILESIZE)] HRESULT fileSize([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLIMGELEMENT_FILECREATEDDATE)] HRESULT fileCreatedDate([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLIMGELEMENT_FILEMODIFIEDDATE)] HRESULT fileModifiedDate([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLIMGELEMENT_FILEUPDATEDDATE)] HRESULT fileUpdatedDate([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLIMGELEMENT_PROTOCOL)] HRESULT protocol([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLIMGELEMENT_HREF)] HRESULT href([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLIMGELEMENT_NAMEPROP)] HRESULT nameProp([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLIMGELEMENT_BORDER), displaybind, bindable] HRESULT border([in] VARIANT v);
    [propget, id(DISPID_IHTMLIMGELEMENT_BORDER), displaybind, bindable] HRESULT border([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLIMGELEMENT_VSPACE), displaybind, bindable] HRESULT vspace([in] long v);
    [propget, id(DISPID_IHTMLIMGELEMENT_VSPACE), displaybind, bindable] HRESULT vspace([retval, out] long * p);
    [propput, id(DISPID_IHTMLIMGELEMENT_HSPACE), displaybind, bindable] HRESULT hspace([in] long v);
    [propget, id(DISPID_IHTMLIMGELEMENT_HSPACE), displaybind, bindable] HRESULT hspace([retval, out] long * p);
    [propput, id(DISPID_IHTMLIMGELEMENT_ALT), displaybind, bindable] HRESULT alt([in] BSTR v);
    [propget, id(DISPID_IHTMLIMGELEMENT_ALT), displaybind, bindable] HRESULT alt([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLIMGELEMENT_SRC), displaybind, bindable] HRESULT src([in] BSTR v);
    [propget, id(DISPID_IHTMLIMGELEMENT_SRC), displaybind, bindable] HRESULT src([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLIMGELEMENT_LOWSRC), displaybind, bindable] HRESULT lowsrc([in] BSTR v);
    [propget, id(DISPID_IHTMLIMGELEMENT_LOWSRC), displaybind, bindable] HRESULT lowsrc([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLIMGELEMENT_VRML), displaybind, bindable] HRESULT vrml([in] BSTR v);
    [propget, id(DISPID_IHTMLIMGELEMENT_VRML), displaybind, bindable] HRESULT vrml([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLIMGELEMENT_DYNSRC), displaybind, bindable] HRESULT dynsrc([in] BSTR v);
    [propget, id(DISPID_IHTMLIMGELEMENT_DYNSRC), displaybind, bindable] HRESULT dynsrc([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLIMGELEMENT_READYSTATE)] HRESULT readyState([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLIMGELEMENT_COMPLETE)] HRESULT complete([retval, out] VARIANT_BOOL * p);
    [propput, id(DISPID_IHTMLIMGELEMENT_LOOP), displaybind, bindable] HRESULT loop([in] VARIANT v);
    [propget, id(DISPID_IHTMLIMGELEMENT_LOOP), displaybind, bindable] HRESULT loop([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLIMGELEMENT_ALIGN), displaybind, bindable] HRESULT align([in] BSTR v);
    [propget, id(DISPID_IHTMLIMGELEMENT_ALIGN), displaybind, bindable] HRESULT align([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLIMGELEMENT_ONLOAD), displaybind, bindable] HRESULT onload([in] VARIANT v);
    [propget, id(DISPID_IHTMLIMGELEMENT_ONLOAD), displaybind, bindable] HRESULT onload([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLIMGELEMENT_ONERROR), displaybind, bindable] HRESULT onerror([in] VARIANT v);
    [propget, id(DISPID_IHTMLIMGELEMENT_ONERROR), displaybind, bindable] HRESULT onerror([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLIMGELEMENT_ONABORT), displaybind, bindable] HRESULT onabort([in] VARIANT v);
    [propget, id(DISPID_IHTMLIMGELEMENT_ONABORT), displaybind, bindable] HRESULT onabort([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLIMGELEMENT_NAME), displaybind, bindable] HRESULT name([in] BSTR v);
    [propget, id(DISPID_IHTMLIMGELEMENT_NAME), displaybind, bindable] HRESULT name([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLIMGELEMENT_WIDTH)] HRESULT width([in] long v);
    [propget, id(DISPID_IHTMLIMGELEMENT_WIDTH)] HRESULT width([retval, out] long * p);
    [propput, id(DISPID_IHTMLIMGELEMENT_HEIGHT)] HRESULT height([in] long v);
    [propget, id(DISPID_IHTMLIMGELEMENT_HEIGHT)] HRESULT height([retval, out] long * p);
    [propput, id(DISPID_IHTMLIMGELEMENT_START), displaybind, bindable] HRESULT start([in] BSTR v);
    [propget, id(DISPID_IHTMLIMGELEMENT_START), displaybind, bindable] HRESULT start([retval, out] BSTR * p);
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f38e-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLImageElementFactory : IDispatch
{
    [id(DISPID_IHTMLIMAGEELEMENTFACTORY_CREATE)] HRESULT create([optional, in] VARIANT width,[optional, in] VARIANT height,[retval, out] IHTMLImgElement** );
};
[
    hidden,
    uuid(3050f51c-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTMLImg
{
properties:
methods:
    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)] void setAttribute([in] BSTR strAttributeName,[in] VARIANT AttributeValue,[defaultvalue(1), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)] VARIANT getAttribute([in] BSTR strAttributeName,[defaultvalue(0), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)] VARIANT_BOOL removeAttribute([in] BSTR strAttributeName,[defaultvalue(1), in] LONG lFlags);
    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] void className(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] BSTR className();
    [propput, id(DISPID_IHTMLELEMENT_ID), bindable] void id(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_ID), bindable] BSTR id();
    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)] BSTR tagName();
    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)] IHTMLElement* parentElement();
    [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable] IHTMLStyle* style();
    [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] void onhelp(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] VARIANT onhelp();
    [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] void onclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] VARIANT onclick();
    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] void ondblclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] VARIANT ondblclick();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] void onkeydown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] VARIANT onkeydown();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] void onkeyup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] VARIANT onkeyup();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] void onkeypress(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] VARIANT onkeypress();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] void onmouseout(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] VARIANT onmouseout();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] void onmouseover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] VARIANT onmouseover();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] void onmousemove(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] VARIANT onmousemove();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] void onmousedown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] VARIANT onmousedown();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] void onmouseup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] VARIANT onmouseup();
    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)] IDispatch* document();
    [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] void title(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] BSTR title();
    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] void language(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] BSTR language();
    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] void onselectstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] VARIANT onselectstart();
    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)] void scrollIntoView([optional, in] VARIANT varargStart);
    [id(DISPID_IHTMLELEMENT_CONTAINS)] VARIANT_BOOL contains([in] IHTMLElement* pChild);
    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable] long sourceIndex();
    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)] VARIANT recordNumber();
    [propput, id(DISPID_IHTMLELEMENT_LANG)] void lang(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANG)] BSTR lang();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)] long offsetLeft();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)] long offsetTop();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)] long offsetWidth();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)] long offsetHeight();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)] IHTMLElement* offsetParent();
    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)] void innerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)] BSTR innerHTML();
    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)] void innerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)] BSTR innerText();
    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)] void outerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)] BSTR outerHTML();
    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)] void outerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)] BSTR outerText();
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)] void insertAdjacentHTML([in] BSTR where,[in] BSTR html);
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)] void insertAdjacentText([in] BSTR where,[in] BSTR text);
    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)] IHTMLElement* parentTextEdit();
    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)] VARIANT_BOOL isTextEdit();
    [id(DISPID_IHTMLELEMENT_CLICK)] void click();
    [propget, id(DISPID_IHTMLELEMENT_FILTERS)] IHTMLFiltersCollection* filters();
    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] void ondragstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] VARIANT ondragstart();
    [id(DISPID_IHTMLELEMENT_TOSTRING)] BSTR toString();
    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] void onbeforeupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] VARIANT onbeforeupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] void onafterupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] VARIANT onafterupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] void onerrorupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] VARIANT onerrorupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] void onrowexit(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] VARIANT onrowexit();
    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] void onrowenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] VARIANT onrowenter();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] void ondatasetchanged(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] VARIANT ondatasetchanged();
    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] void ondataavailable(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] VARIANT ondataavailable();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] void ondatasetcomplete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] VARIANT ondatasetcomplete();
    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] void onfilterchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] VARIANT onfilterchange();
    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)] IDispatch* children();
    [propget, id(DISPID_IHTMLELEMENT_ALL)] IDispatch* all();
    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)] BSTR scopeName();
    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)] void setCapture([defaultvalue(-1), in] VARIANT_BOOL containerCapture);
    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)] void releaseCapture();
    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] void onlosecapture(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] VARIANT onlosecapture();
    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)] BSTR componentFromPoint([in] long x,[in] long y);
    [id(DISPID_IHTMLELEMENT2_DOSCROLL)] void doScroll([optional, in] VARIANT component);
    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] void onscroll(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] VARIANT onscroll();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] void ondrag(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] VARIANT ondrag();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] void ondragend(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] VARIANT ondragend();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] void ondragenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] VARIANT ondragenter();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] void ondragover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] VARIANT ondragover();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] void ondragleave(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] VARIANT ondragleave();
    [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] void ondrop(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] VARIANT ondrop();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] void onbeforecut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] VARIANT onbeforecut();
    [propput, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] void oncut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] VARIANT oncut();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] void onbeforecopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] VARIANT onbeforecopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] void oncopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] VARIANT oncopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] void onbeforepaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] VARIANT onbeforepaste();
    [propput, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] void onpaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] VARIANT onpaste();
    [propget, id(DISPID_IHTMLELEMENT2_CURRENTSTYLE), nonbrowsable] IHTMLCurrentStyle* currentStyle();
    [propput, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] void onpropertychange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] VARIANT onpropertychange();
    [id(DISPID_IHTMLELEMENT2_GETCLIENTRECTS)] IHTMLRectCollection* getClientRects();
    [id(DISPID_IHTMLELEMENT2_GETBOUNDINGCLIENTRECT)] IHTMLRect* getBoundingClientRect();
    [id(DISPID_IHTMLELEMENT2_SETEXPRESSION)] void setExpression([in] BSTR propname,[in] BSTR expression,[defaultvalue(""), in] BSTR language);
    [id(DISPID_IHTMLELEMENT2_GETEXPRESSION)] VARIANT getExpression([in] BSTR propname);
    [id(DISPID_IHTMLELEMENT2_REMOVEEXPRESSION)] VARIANT_BOOL removeExpression([in] BSTR propname);
    [propput, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] void tabIndex(short v);
    [propget, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] short tabIndex();
    [id(DISPID_IHTMLELEMENT2_FOCUS)] void focus();
    [propput, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] void accessKey(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] BSTR accessKey();
    [propput, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] void onblur(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] VARIANT onblur();
    [propput, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] void onfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] VARIANT onfocus();
    [propput, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] void onresize(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] VARIANT onresize();
    [id(DISPID_IHTMLELEMENT2_BLUR)] void blur();
    [id(DISPID_IHTMLELEMENT2_ADDFILTER)] void addFilter([in] IUnknown* pUnk);
    [id(DISPID_IHTMLELEMENT2_REMOVEFILTER)] void removeFilter([in] IUnknown* pUnk);
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTHEIGHT), displaybind, bindable] long clientHeight();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTWIDTH), displaybind, bindable] long clientWidth();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTTOP), displaybind, bindable] long clientTop();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTLEFT), displaybind, bindable] long clientLeft();
    [id(DISPID_IHTMLELEMENT2_ATTACHEVENT)] VARIANT_BOOL attachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [id(DISPID_IHTMLELEMENT2_DETACHEVENT)] void detachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATE)] VARIANT readyState();
    [propput, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] void onreadystatechange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] VARIANT onreadystatechange();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] void onrowsdelete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] VARIANT onrowsdelete();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] void onrowsinserted(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] VARIANT onrowsinserted();
    [propput, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] void oncellchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] VARIANT oncellchange();
    [propput, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] void dir(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] BSTR dir();
    [id(DISPID_IHTMLELEMENT2_CREATECONTROLRANGE)] IDispatch* createControlRange();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLHEIGHT), displaybind, bindable] long scrollHeight();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLWIDTH), displaybind, bindable] long scrollWidth();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] void scrollTop(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] long scrollTop();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] void scrollLeft(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] long scrollLeft();
    [id(DISPID_IHTMLELEMENT2_CLEARATTRIBUTES)] void clearAttributes();
    [id(DISPID_IHTMLELEMENT2_MERGEATTRIBUTES)] void mergeAttributes([in] IHTMLElement* mergeThis);
    [propput, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] void oncontextmenu(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] VARIANT oncontextmenu();
    [id(DISPID_IHTMLELEMENT2_INSERTADJACENTELEMENT)] IHTMLElement* insertAdjacentElement([in] BSTR where,[in] IHTMLElement* insertedElement);
    [id(DISPID_IHTMLELEMENT2_APPLYELEMENT)] IHTMLElement* applyElement([in] IHTMLElement* apply,[in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_GETADJACENTTEXT)] BSTR getAdjacentText([in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_REPLACEADJACENTTEXT)] BSTR replaceAdjacentText([in] BSTR where,[in] BSTR newText);
    [propget, id(DISPID_IHTMLELEMENT2_CANHAVECHILDREN)] VARIANT_BOOL canHaveChildren();
    [id(DISPID_IHTMLELEMENT2_ADDBEHAVIOR)] long addBehavior([in] BSTR bstrUrl,[optional, in] VARIANT* pvarFactory);
    [id(DISPID_IHTMLELEMENT2_REMOVEBEHAVIOR)] VARIANT_BOOL removeBehavior([in] long cookie);
    [propget, id(DISPID_IHTMLELEMENT2_RUNTIMESTYLE), nonbrowsable] IHTMLStyle* runtimeStyle();
    [propget, id(DISPID_IHTMLELEMENT2_BEHAVIORURNS)] IDispatch* behaviorUrns();
    [propput, id(DISPID_IHTMLELEMENT2_TAGURN)] void tagUrn(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_TAGURN)] BSTR tagUrn();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] void onbeforeeditfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] VARIANT onbeforeeditfocus();
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATEVALUE), hidden, restricted] long readyStateValue();
    [id(DISPID_IHTMLELEMENT2_GETELEMENTSBYTAGNAME)] IHTMLElementCollection* getElementsByTagName([in] BSTR v);
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUENUMBER), hidden] long uniqueNumber();
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUEID), hidden] BSTR uniqueID();
    [propget, id(DISPID_IHTMLDOMNODE_NODETYPE)] long nodeType();
    [propget, id(DISPID_IHTMLDOMNODE_PARENTNODE)] IHTMLDOMNode* parentNode();
    [id(DISPID_IHTMLDOMNODE_HASCHILDNODES)] VARIANT_BOOL hasChildNodes();
    [propget, id(DISPID_IHTMLDOMNODE_CHILDNODES)] IDispatch* childNodes();
    [propget, id(DISPID_IHTMLDOMNODE_ATTRIBUTES)] IDispatch* attributes();
    [id(DISPID_IHTMLDOMNODE_INSERTBEFORE)] IHTMLDOMNode* insertBefore([in] IHTMLDOMNode* newChild,[optional, in] VARIANT refChild);
    [id(DISPID_IHTMLDOMNODE_REMOVECHILD)] IHTMLDOMNode* removeChild([in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_REPLACECHILD)] IHTMLDOMNode* replaceChild([in] IHTMLDOMNode* newChild,[in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_CLONENODE)] IHTMLDOMNode* cloneNode([in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_REMOVENODE)] IHTMLDOMNode* removeNode([defaultvalue(0), in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_SWAPNODE)] IHTMLDOMNode* swapNode([in] IHTMLDOMNode* otherNode);
    [id(DISPID_IHTMLDOMNODE_REPLACENODE)] IHTMLDOMNode* replaceNode([in] IHTMLDOMNode* replacement);
    [id(DISPID_IHTMLDOMNODE_APPENDCHILD)] IHTMLDOMNode* appendChild([in] IHTMLDOMNode* newChild);
    [propget, id(DISPID_IHTMLDOMNODE_NODENAME)] BSTR nodeName();
    [propput, id(DISPID_IHTMLDOMNODE_NODEVALUE)] void nodeValue(VARIANT v);
    [propget, id(DISPID_IHTMLDOMNODE_NODEVALUE)] VARIANT nodeValue();
    [propget, id(DISPID_IHTMLDOMNODE_FIRSTCHILD)] IHTMLDOMNode* firstChild();
    [propget, id(DISPID_IHTMLDOMNODE_LASTCHILD)] IHTMLDOMNode* lastChild();
    [propget, id(DISPID_IHTMLDOMNODE_PREVIOUSSIBLING)] IHTMLDOMNode* previousSibling();
    [propget, id(DISPID_IHTMLDOMNODE_NEXTSIBLING)] IHTMLDOMNode* nextSibling();
    [propput, id(DISPID_IHTMLDATABINDING_DATAFLD)] void dataFld(BSTR v);
    [propget, id(DISPID_IHTMLDATABINDING_DATAFLD)] BSTR dataFld();
    [propput, id(DISPID_IHTMLDATABINDING_DATASRC)] void dataSrc(BSTR v);
    [propget, id(DISPID_IHTMLDATABINDING_DATASRC)] BSTR dataSrc();
    [propput, id(DISPID_IHTMLDATABINDING_DATAFORMATAS)] void dataFormatAs(BSTR v);
    [propget, id(DISPID_IHTMLDATABINDING_DATAFORMATAS)] BSTR dataFormatAs();
    [propput, id(DISPID_IHTMLIMGELEMENT_ISMAP), displaybind, bindable] void isMap(VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLIMGELEMENT_ISMAP), displaybind, bindable] VARIANT_BOOL isMap();
    [propput, id(DISPID_IHTMLIMGELEMENT_USEMAP), displaybind, bindable] void useMap(BSTR v);
    [propget, id(DISPID_IHTMLIMGELEMENT_USEMAP), displaybind, bindable] BSTR useMap();
    [propget, id(DISPID_IHTMLIMGELEMENT_MIMETYPE)] BSTR mimeType();
    [propget, id(DISPID_IHTMLIMGELEMENT_FILESIZE)] BSTR fileSize();
    [propget, id(DISPID_IHTMLIMGELEMENT_FILECREATEDDATE)] BSTR fileCreatedDate();
    [propget, id(DISPID_IHTMLIMGELEMENT_FILEMODIFIEDDATE)] BSTR fileModifiedDate();
    [propget, id(DISPID_IHTMLIMGELEMENT_FILEUPDATEDDATE)] BSTR fileUpdatedDate();
    [propget, id(DISPID_IHTMLIMGELEMENT_PROTOCOL)] BSTR protocol();
    [propget, id(DISPID_IHTMLIMGELEMENT_HREF)] BSTR href();
    [propget, id(DISPID_IHTMLIMGELEMENT_NAMEPROP)] BSTR nameProp();
    [propput, id(DISPID_IHTMLIMGELEMENT_BORDER), displaybind, bindable] void border(VARIANT v);
    [propget, id(DISPID_IHTMLIMGELEMENT_BORDER), displaybind, bindable] VARIANT border();
    [propput, id(DISPID_IHTMLIMGELEMENT_VSPACE), displaybind, bindable] void vspace(long v);
    [propget, id(DISPID_IHTMLIMGELEMENT_VSPACE), displaybind, bindable] long vspace();
    [propput, id(DISPID_IHTMLIMGELEMENT_HSPACE), displaybind, bindable] void hspace(long v);
    [propget, id(DISPID_IHTMLIMGELEMENT_HSPACE), displaybind, bindable] long hspace();
    [propput, id(DISPID_IHTMLIMGELEMENT_ALT), displaybind, bindable] void alt(BSTR v);
    [propget, id(DISPID_IHTMLIMGELEMENT_ALT), displaybind, bindable] BSTR alt();
    [propput, id(DISPID_IHTMLIMGELEMENT_SRC), displaybind, bindable] void src(BSTR v);
    [propget, id(DISPID_IHTMLIMGELEMENT_SRC), displaybind, bindable] BSTR src();
    [propput, id(DISPID_IHTMLIMGELEMENT_LOWSRC), displaybind, bindable] void lowsrc(BSTR v);
    [propget, id(DISPID_IHTMLIMGELEMENT_LOWSRC), displaybind, bindable] BSTR lowsrc();
    [propput, id(DISPID_IHTMLIMGELEMENT_VRML), displaybind, bindable] void vrml(BSTR v);
    [propget, id(DISPID_IHTMLIMGELEMENT_VRML), displaybind, bindable] BSTR vrml();
    [propput, id(DISPID_IHTMLIMGELEMENT_DYNSRC), displaybind, bindable] void dynsrc(BSTR v);
    [propget, id(DISPID_IHTMLIMGELEMENT_DYNSRC), displaybind, bindable] BSTR dynsrc();
    [propget, id(DISPID_IHTMLIMGELEMENT_COMPLETE)] VARIANT_BOOL complete();
    [propput, id(DISPID_IHTMLIMGELEMENT_LOOP), displaybind, bindable] void loop(VARIANT v);
    [propget, id(DISPID_IHTMLIMGELEMENT_LOOP), displaybind, bindable] VARIANT loop();
    [propput, id(DISPID_IHTMLIMGELEMENT_ALIGN), displaybind, bindable] void align(BSTR v);
    [propget, id(DISPID_IHTMLIMGELEMENT_ALIGN), displaybind, bindable] BSTR align();
    [propput, id(DISPID_IHTMLIMGELEMENT_ONLOAD), displaybind, bindable] void onload(VARIANT v);
    [propget, id(DISPID_IHTMLIMGELEMENT_ONLOAD), displaybind, bindable] VARIANT onload();
    [propput, id(DISPID_IHTMLIMGELEMENT_ONERROR), displaybind, bindable] void onerror(VARIANT v);
    [propget, id(DISPID_IHTMLIMGELEMENT_ONERROR), displaybind, bindable] VARIANT onerror();
    [propput, id(DISPID_IHTMLIMGELEMENT_ONABORT), displaybind, bindable] void onabort(VARIANT v);
    [propget, id(DISPID_IHTMLIMGELEMENT_ONABORT), displaybind, bindable] VARIANT onabort();
    [propput, id(DISPID_IHTMLIMGELEMENT_NAME), displaybind, bindable] void name(BSTR v);
    [propget, id(DISPID_IHTMLIMGELEMENT_NAME), displaybind, bindable] BSTR name();
    [propput, id(DISPID_IHTMLIMGELEMENT_WIDTH)] void width(long v);
    [propget, id(DISPID_IHTMLIMGELEMENT_WIDTH)] long width();
    [propput, id(DISPID_IHTMLIMGELEMENT_HEIGHT)] void height(long v);
    [propget, id(DISPID_IHTMLIMGELEMENT_HEIGHT)] long height();
    [propput, id(DISPID_IHTMLIMGELEMENT_START), displaybind, bindable] void start(BSTR v);
    [propget, id(DISPID_IHTMLIMGELEMENT_START), displaybind, bindable] BSTR start();
};
[
    uuid(3050f241-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLImg
{
    [default]           dispinterface DispHTMLImg;
    [source, default]   dispinterface HTMLImgEvents;
    [source]            dispinterface HTMLImgEvents2;
                        interface IHTMLElement;
                        interface IHTMLElement2;
                        interface IHTMLUniqueName;
                        interface IHTMLDOMNode;
                        interface IHTMLDatabinding;
                        interface IHTMLControlElement;
                        interface IHTMLImgElement;
};
cpp_quote("EXTERN_C const GUID CLSID_CImgElement;")
[
    uuid(3050f38f-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLImageElementFactory
{
    [default]           interface IHTMLImageElementFactory;
};
cpp_quote("EXTERN_C const GUID CLSID_CImageElementFactory;")
typedef enum _bodyScroll
{
    bodyScrollyes = 1,
    bodyScrollno = 2,
    bodyScrollauto = 4,
    bodyScrolldefault = 3,
    bodyScroll_Max = 2147483647L
} bodyScroll;

[
    odl,
    oleautomation,
    dual,
    uuid(3050f1d8-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLBodyElement : IDispatch
{
    [propput, id(DISPID_IHTMLBODYELEMENT_BACKGROUND), displaybind, bindable] HRESULT background([in] BSTR v);
    [propget, id(DISPID_IHTMLBODYELEMENT_BACKGROUND), displaybind, bindable] HRESULT background([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLBODYELEMENT_BGPROPERTIES), displaybind, bindable] HRESULT bgProperties([in] BSTR v);
    [propget, id(DISPID_IHTMLBODYELEMENT_BGPROPERTIES), displaybind, bindable] HRESULT bgProperties([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLBODYELEMENT_LEFTMARGIN), displaybind, bindable] HRESULT leftMargin([in] VARIANT v);
    [propget, id(DISPID_IHTMLBODYELEMENT_LEFTMARGIN), displaybind, bindable] HRESULT leftMargin([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLBODYELEMENT_TOPMARGIN), displaybind, bindable] HRESULT topMargin([in] VARIANT v);
    [propget, id(DISPID_IHTMLBODYELEMENT_TOPMARGIN), displaybind, bindable] HRESULT topMargin([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLBODYELEMENT_RIGHTMARGIN), displaybind, bindable] HRESULT rightMargin([in] VARIANT v);
    [propget, id(DISPID_IHTMLBODYELEMENT_RIGHTMARGIN), displaybind, bindable] HRESULT rightMargin([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLBODYELEMENT_BOTTOMMARGIN), displaybind, bindable] HRESULT bottomMargin([in] VARIANT v);
    [propget, id(DISPID_IHTMLBODYELEMENT_BOTTOMMARGIN), displaybind, bindable] HRESULT bottomMargin([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLBODYELEMENT_NOWRAP), displaybind, bindable] HRESULT noWrap([in] VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLBODYELEMENT_NOWRAP), displaybind, bindable] HRESULT noWrap([retval, out] VARIANT_BOOL * p);
    [propput, id(DISPID_IHTMLBODYELEMENT_BGCOLOR), displaybind, bindable] HRESULT bgColor([in] VARIANT v);
    [propget, id(DISPID_IHTMLBODYELEMENT_BGCOLOR), displaybind, bindable] HRESULT bgColor([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLBODYELEMENT_TEXT), displaybind, bindable] HRESULT text([in] VARIANT v);
    [propget, id(DISPID_IHTMLBODYELEMENT_TEXT), displaybind, bindable] HRESULT text([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLBODYELEMENT_LINK), displaybind, bindable] HRESULT link([in] VARIANT v);
    [propget, id(DISPID_IHTMLBODYELEMENT_LINK), displaybind, bindable] HRESULT link([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLBODYELEMENT_VLINK), displaybind, bindable] HRESULT vLink([in] VARIANT v);
    [propget, id(DISPID_IHTMLBODYELEMENT_VLINK), displaybind, bindable] HRESULT vLink([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLBODYELEMENT_ALINK), displaybind, bindable] HRESULT aLink([in] VARIANT v);
    [propget, id(DISPID_IHTMLBODYELEMENT_ALINK), displaybind, bindable] HRESULT aLink([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLBODYELEMENT_ONLOAD), displaybind, bindable] HRESULT onload([in] VARIANT v);
    [propget, id(DISPID_IHTMLBODYELEMENT_ONLOAD), displaybind, bindable] HRESULT onload([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLBODYELEMENT_ONUNLOAD), displaybind, bindable] HRESULT onunload([in] VARIANT v);
    [propget, id(DISPID_IHTMLBODYELEMENT_ONUNLOAD), displaybind, bindable] HRESULT onunload([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLBODYELEMENT_SCROLL), displaybind, bindable] HRESULT scroll([in] BSTR v);
    [propget, id(DISPID_IHTMLBODYELEMENT_SCROLL), displaybind, bindable] HRESULT scroll([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLBODYELEMENT_ONSELECT), displaybind, bindable] HRESULT onselect([in] VARIANT v);
    [propget, id(DISPID_IHTMLBODYELEMENT_ONSELECT), displaybind, bindable] HRESULT onselect([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLBODYELEMENT_ONBEFOREUNLOAD), displaybind, bindable] HRESULT onbeforeunload([in] VARIANT v);
    [propget, id(DISPID_IHTMLBODYELEMENT_ONBEFOREUNLOAD), displaybind, bindable] HRESULT onbeforeunload([retval, out] VARIANT * p);
    [id(DISPID_IHTMLBODYELEMENT_CREATETEXTRANGE)] HRESULT createTextRange([retval, out] IHTMLTxtRange** range);
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f5c5-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLBodyElement2 : IDispatch
{
    [propput, id(DISPID_IHTMLBODYELEMENT2_ONBEFOREPRINT), displaybind, bindable] HRESULT onbeforeprint([in] VARIANT v);
    [propget, id(DISPID_IHTMLBODYELEMENT2_ONBEFOREPRINT), displaybind, bindable] HRESULT onbeforeprint([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLBODYELEMENT2_ONAFTERPRINT), displaybind, bindable] HRESULT onafterprint([in] VARIANT v);
    [propget, id(DISPID_IHTMLBODYELEMENT2_ONAFTERPRINT), displaybind, bindable] HRESULT onafterprint([retval, out] VARIANT * p);
};
[
    hidden,
    uuid(3050f507-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTMLBody
{
properties:
methods:
    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)] void setAttribute([in] BSTR strAttributeName,[in] VARIANT AttributeValue,[defaultvalue(1), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)] VARIANT getAttribute([in] BSTR strAttributeName,[defaultvalue(0), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)] VARIANT_BOOL removeAttribute([in] BSTR strAttributeName,[defaultvalue(1), in] LONG lFlags);
    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] void className(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] BSTR className();
    [propput, id(DISPID_IHTMLELEMENT_ID), bindable] void id(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_ID), bindable] BSTR id();
    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)] BSTR tagName();
    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)] IHTMLElement* parentElement();
    [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable] IHTMLStyle* style();
    [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] void onhelp(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] VARIANT onhelp();
    [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] void onclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] VARIANT onclick();
    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] void ondblclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] VARIANT ondblclick();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] void onkeydown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] VARIANT onkeydown();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] void onkeyup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] VARIANT onkeyup();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] void onkeypress(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] VARIANT onkeypress();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] void onmouseout(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] VARIANT onmouseout();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] void onmouseover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] VARIANT onmouseover();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] void onmousemove(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] VARIANT onmousemove();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] void onmousedown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] VARIANT onmousedown();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] void onmouseup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] VARIANT onmouseup();
    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)] IDispatch* document();
    [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] void title(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] BSTR title();
    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] void language(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] BSTR language();
    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] void onselectstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] VARIANT onselectstart();
    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)] void scrollIntoView([optional, in] VARIANT varargStart);
    [id(DISPID_IHTMLELEMENT_CONTAINS)] VARIANT_BOOL contains([in] IHTMLElement* pChild);
    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable] long sourceIndex();
    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)] VARIANT recordNumber();
    [propput, id(DISPID_IHTMLELEMENT_LANG)] void lang(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANG)] BSTR lang();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)] long offsetLeft();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)] long offsetTop();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)] long offsetWidth();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)] long offsetHeight();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)] IHTMLElement* offsetParent();
    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)] void innerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)] BSTR innerHTML();
    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)] void innerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)] BSTR innerText();
    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)] void outerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)] BSTR outerHTML();
    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)] void outerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)] BSTR outerText();
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)] void insertAdjacentHTML([in] BSTR where,[in] BSTR html);
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)] void insertAdjacentText([in] BSTR where,[in] BSTR text);
    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)] IHTMLElement* parentTextEdit();
    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)] VARIANT_BOOL isTextEdit();
    [id(DISPID_IHTMLELEMENT_CLICK)] void click();
    [propget, id(DISPID_IHTMLELEMENT_FILTERS)] IHTMLFiltersCollection* filters();
    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] void ondragstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] VARIANT ondragstart();
    [id(DISPID_IHTMLELEMENT_TOSTRING)] BSTR toString();
    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] void onbeforeupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] VARIANT onbeforeupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] void onafterupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] VARIANT onafterupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] void onerrorupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] VARIANT onerrorupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] void onrowexit(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] VARIANT onrowexit();
    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] void onrowenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] VARIANT onrowenter();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] void ondatasetchanged(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] VARIANT ondatasetchanged();
    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] void ondataavailable(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] VARIANT ondataavailable();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] void ondatasetcomplete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] VARIANT ondatasetcomplete();
    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] void onfilterchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] VARIANT onfilterchange();
    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)] IDispatch* children();
    [propget, id(DISPID_IHTMLELEMENT_ALL)] IDispatch* all();
    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)] BSTR scopeName();
    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)] void setCapture([defaultvalue(-1), in] VARIANT_BOOL containerCapture);
    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)] void releaseCapture();
    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] void onlosecapture(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] VARIANT onlosecapture();
    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)] BSTR componentFromPoint([in] long x,[in] long y);
    [id(DISPID_IHTMLELEMENT2_DOSCROLL)] void doScroll([optional, in] VARIANT component);
    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] void onscroll(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] VARIANT onscroll();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] void ondrag(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] VARIANT ondrag();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] void ondragend(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] VARIANT ondragend();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] void ondragenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] VARIANT ondragenter();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] void ondragover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] VARIANT ondragover();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] void ondragleave(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] VARIANT ondragleave();
    [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] void ondrop(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] VARIANT ondrop();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] void onbeforecut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] VARIANT onbeforecut();
    [propput, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] void oncut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] VARIANT oncut();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] void onbeforecopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] VARIANT onbeforecopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] void oncopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] VARIANT oncopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] void onbeforepaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] VARIANT onbeforepaste();
    [propput, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] void onpaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] VARIANT onpaste();
    [propget, id(DISPID_IHTMLELEMENT2_CURRENTSTYLE), nonbrowsable] IHTMLCurrentStyle* currentStyle();
    [propput, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] void onpropertychange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] VARIANT onpropertychange();
    [id(DISPID_IHTMLELEMENT2_GETCLIENTRECTS)] IHTMLRectCollection* getClientRects();
    [id(DISPID_IHTMLELEMENT2_GETBOUNDINGCLIENTRECT)] IHTMLRect* getBoundingClientRect();
    [id(DISPID_IHTMLELEMENT2_SETEXPRESSION)] void setExpression([in] BSTR propname,[in] BSTR expression,[defaultvalue(""), in] BSTR language);
    [id(DISPID_IHTMLELEMENT2_GETEXPRESSION)] VARIANT getExpression([in] BSTR propname);
    [id(DISPID_IHTMLELEMENT2_REMOVEEXPRESSION)] VARIANT_BOOL removeExpression([in] BSTR propname);
    [propput, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] void tabIndex(short v);
    [propget, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] short tabIndex();
    [id(DISPID_IHTMLELEMENT2_FOCUS)] void focus();
    [propput, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] void accessKey(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] BSTR accessKey();
    [propput, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] void onblur(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] VARIANT onblur();
    [propput, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] void onfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] VARIANT onfocus();
    [propput, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] void onresize(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] VARIANT onresize();
    [id(DISPID_IHTMLELEMENT2_BLUR)] void blur();
    [id(DISPID_IHTMLELEMENT2_ADDFILTER)] void addFilter([in] IUnknown* pUnk);
    [id(DISPID_IHTMLELEMENT2_REMOVEFILTER)] void removeFilter([in] IUnknown* pUnk);
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTHEIGHT), displaybind, bindable] long clientHeight();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTWIDTH), displaybind, bindable] long clientWidth();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTTOP), displaybind, bindable] long clientTop();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTLEFT), displaybind, bindable] long clientLeft();
    [id(DISPID_IHTMLELEMENT2_ATTACHEVENT)] VARIANT_BOOL attachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [id(DISPID_IHTMLELEMENT2_DETACHEVENT)] void detachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATE)] VARIANT readyState();
    [propput, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] void onreadystatechange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] VARIANT onreadystatechange();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] void onrowsdelete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] VARIANT onrowsdelete();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] void onrowsinserted(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] VARIANT onrowsinserted();
    [propput, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] void oncellchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] VARIANT oncellchange();
    [propput, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] void dir(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] BSTR dir();
    [id(DISPID_IHTMLELEMENT2_CREATECONTROLRANGE)] IDispatch* createControlRange();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLHEIGHT), displaybind, bindable] long scrollHeight();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLWIDTH), displaybind, bindable] long scrollWidth();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] void scrollTop(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] long scrollTop();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] void scrollLeft(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] long scrollLeft();
    [id(DISPID_IHTMLELEMENT2_CLEARATTRIBUTES)] void clearAttributes();
    [id(DISPID_IHTMLELEMENT2_MERGEATTRIBUTES)] void mergeAttributes([in] IHTMLElement* mergeThis);
    [propput, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] void oncontextmenu(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] VARIANT oncontextmenu();
    [id(DISPID_IHTMLELEMENT2_INSERTADJACENTELEMENT)] IHTMLElement* insertAdjacentElement([in] BSTR where,[in] IHTMLElement* insertedElement);
    [id(DISPID_IHTMLELEMENT2_APPLYELEMENT)] IHTMLElement* applyElement([in] IHTMLElement* apply,[in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_GETADJACENTTEXT)] BSTR getAdjacentText([in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_REPLACEADJACENTTEXT)] BSTR replaceAdjacentText([in] BSTR where,[in] BSTR newText);
    [propget, id(DISPID_IHTMLELEMENT2_CANHAVECHILDREN)] VARIANT_BOOL canHaveChildren();
    [id(DISPID_IHTMLELEMENT2_ADDBEHAVIOR)] long addBehavior([in] BSTR bstrUrl,[optional, in] VARIANT* pvarFactory);
    [id(DISPID_IHTMLELEMENT2_REMOVEBEHAVIOR)] VARIANT_BOOL removeBehavior([in] long cookie);
    [propget, id(DISPID_IHTMLELEMENT2_RUNTIMESTYLE), nonbrowsable] IHTMLStyle* runtimeStyle();
    [propget, id(DISPID_IHTMLELEMENT2_BEHAVIORURNS)] IDispatch* behaviorUrns();
    [propput, id(DISPID_IHTMLELEMENT2_TAGURN)] void tagUrn(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_TAGURN)] BSTR tagUrn();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] void onbeforeeditfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] VARIANT onbeforeeditfocus();
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATEVALUE), hidden, restricted] long readyStateValue();
    [id(DISPID_IHTMLELEMENT2_GETELEMENTSBYTAGNAME)] IHTMLElementCollection* getElementsByTagName([in] BSTR v);
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUENUMBER), hidden] long uniqueNumber();
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUEID), hidden] BSTR uniqueID();
    [propget, id(DISPID_IHTMLDOMNODE_NODETYPE)] long nodeType();
    [propget, id(DISPID_IHTMLDOMNODE_PARENTNODE)] IHTMLDOMNode* parentNode();
    [id(DISPID_IHTMLDOMNODE_HASCHILDNODES)] VARIANT_BOOL hasChildNodes();
    [propget, id(DISPID_IHTMLDOMNODE_CHILDNODES)] IDispatch* childNodes();
    [propget, id(DISPID_IHTMLDOMNODE_ATTRIBUTES)] IDispatch* attributes();
    [id(DISPID_IHTMLDOMNODE_INSERTBEFORE)] IHTMLDOMNode* insertBefore([in] IHTMLDOMNode* newChild,[optional, in] VARIANT refChild);
    [id(DISPID_IHTMLDOMNODE_REMOVECHILD)] IHTMLDOMNode* removeChild([in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_REPLACECHILD)] IHTMLDOMNode* replaceChild([in] IHTMLDOMNode* newChild,[in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_CLONENODE)] IHTMLDOMNode* cloneNode([in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_REMOVENODE)] IHTMLDOMNode* removeNode([defaultvalue(0), in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_SWAPNODE)] IHTMLDOMNode* swapNode([in] IHTMLDOMNode* otherNode);
    [id(DISPID_IHTMLDOMNODE_REPLACENODE)] IHTMLDOMNode* replaceNode([in] IHTMLDOMNode* replacement);
    [id(DISPID_IHTMLDOMNODE_APPENDCHILD)] IHTMLDOMNode* appendChild([in] IHTMLDOMNode* newChild);
    [propget, id(DISPID_IHTMLDOMNODE_NODENAME)] BSTR nodeName();
    [propput, id(DISPID_IHTMLDOMNODE_NODEVALUE)] void nodeValue(VARIANT v);
    [propget, id(DISPID_IHTMLDOMNODE_NODEVALUE)] VARIANT nodeValue();
    [propget, id(DISPID_IHTMLDOMNODE_FIRSTCHILD)] IHTMLDOMNode* firstChild();
    [propget, id(DISPID_IHTMLDOMNODE_LASTCHILD)] IHTMLDOMNode* lastChild();
    [propget, id(DISPID_IHTMLDOMNODE_PREVIOUSSIBLING)] IHTMLDOMNode* previousSibling();
    [propget, id(DISPID_IHTMLDOMNODE_NEXTSIBLING)] IHTMLDOMNode* nextSibling();
    [propput, id(DISPID_IHTMLBODYELEMENT_BACKGROUND), displaybind, bindable] void background(BSTR v);
    [propget, id(DISPID_IHTMLBODYELEMENT_BACKGROUND), displaybind, bindable] BSTR background();
    [propput, id(DISPID_IHTMLBODYELEMENT_BGPROPERTIES), displaybind, bindable] void bgProperties(BSTR v);
    [propget, id(DISPID_IHTMLBODYELEMENT_BGPROPERTIES), displaybind, bindable] BSTR bgProperties();
    [propput, id(DISPID_IHTMLBODYELEMENT_LEFTMARGIN), displaybind, bindable] void leftMargin(VARIANT v);
    [propget, id(DISPID_IHTMLBODYELEMENT_LEFTMARGIN), displaybind, bindable] VARIANT leftMargin();
    [propput, id(DISPID_IHTMLBODYELEMENT_TOPMARGIN), displaybind, bindable] void topMargin(VARIANT v);
    [propget, id(DISPID_IHTMLBODYELEMENT_TOPMARGIN), displaybind, bindable] VARIANT topMargin();
    [propput, id(DISPID_IHTMLBODYELEMENT_RIGHTMARGIN), displaybind, bindable] void rightMargin(VARIANT v);
    [propget, id(DISPID_IHTMLBODYELEMENT_RIGHTMARGIN), displaybind, bindable] VARIANT rightMargin();
    [propput, id(DISPID_IHTMLBODYELEMENT_BOTTOMMARGIN), displaybind, bindable] void bottomMargin(VARIANT v);
    [propget, id(DISPID_IHTMLBODYELEMENT_BOTTOMMARGIN), displaybind, bindable] VARIANT bottomMargin();
    [propput, id(DISPID_IHTMLBODYELEMENT_NOWRAP), displaybind, bindable] void noWrap(VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLBODYELEMENT_NOWRAP), displaybind, bindable] VARIANT_BOOL noWrap();
    [propput, id(DISPID_IHTMLBODYELEMENT_BGCOLOR), displaybind, bindable] void bgColor(VARIANT v);
    [propget, id(DISPID_IHTMLBODYELEMENT_BGCOLOR), displaybind, bindable] VARIANT bgColor();
    [propput, id(DISPID_IHTMLBODYELEMENT_TEXT), displaybind, bindable] void text(VARIANT v);
    [propget, id(DISPID_IHTMLBODYELEMENT_TEXT), displaybind, bindable] VARIANT text();
    [propput, id(DISPID_IHTMLBODYELEMENT_LINK), displaybind, bindable] void link(VARIANT v);
    [propget, id(DISPID_IHTMLBODYELEMENT_LINK), displaybind, bindable] VARIANT link();
    [propput, id(DISPID_IHTMLBODYELEMENT_VLINK), displaybind, bindable] void vLink(VARIANT v);
    [propget, id(DISPID_IHTMLBODYELEMENT_VLINK), displaybind, bindable] VARIANT vLink();
    [propput, id(DISPID_IHTMLBODYELEMENT_ALINK), displaybind, bindable] void aLink(VARIANT v);
    [propget, id(DISPID_IHTMLBODYELEMENT_ALINK), displaybind, bindable] VARIANT aLink();
    [propput, id(DISPID_IHTMLBODYELEMENT_ONLOAD), displaybind, bindable] void onload(VARIANT v);
    [propget, id(DISPID_IHTMLBODYELEMENT_ONLOAD), displaybind, bindable] VARIANT onload();
    [propput, id(DISPID_IHTMLBODYELEMENT_ONUNLOAD), displaybind, bindable] void onunload(VARIANT v);
    [propget, id(DISPID_IHTMLBODYELEMENT_ONUNLOAD), displaybind, bindable] VARIANT onunload();
    [propput, id(DISPID_IHTMLBODYELEMENT_SCROLL), displaybind, bindable] void scroll(BSTR v);
    [propget, id(DISPID_IHTMLBODYELEMENT_SCROLL), displaybind, bindable] BSTR scroll();
    [propput, id(DISPID_IHTMLBODYELEMENT_ONSELECT), displaybind, bindable] void onselect(VARIANT v);
    [propget, id(DISPID_IHTMLBODYELEMENT_ONSELECT), displaybind, bindable] VARIANT onselect();
    [propput, id(DISPID_IHTMLBODYELEMENT_ONBEFOREUNLOAD), displaybind, bindable] void onbeforeunload(VARIANT v);
    [propget, id(DISPID_IHTMLBODYELEMENT_ONBEFOREUNLOAD), displaybind, bindable] VARIANT onbeforeunload();
    [id(DISPID_IHTMLBODYELEMENT_CREATETEXTRANGE)] IHTMLTxtRange* createTextRange();
    [propput, id(DISPID_IHTMLBODYELEMENT2_ONBEFOREPRINT), displaybind, bindable] void onbeforeprint(VARIANT v);
    [propget, id(DISPID_IHTMLBODYELEMENT2_ONBEFOREPRINT), displaybind, bindable] VARIANT onbeforeprint();
    [propput, id(DISPID_IHTMLBODYELEMENT2_ONAFTERPRINT), displaybind, bindable] void onafterprint(VARIANT v);
    [propget, id(DISPID_IHTMLBODYELEMENT2_ONAFTERPRINT), displaybind, bindable] VARIANT onafterprint();
};
[
    uuid(3050f24a-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLBody
{
    [default]           dispinterface DispHTMLBody;
    [source, default]   dispinterface HTMLTextContainerEvents;
    [source]            dispinterface HTMLTextContainerEvents2;
                        interface IHTMLElement;
                        interface IHTMLElement2;
                        interface IHTMLUniqueName;
                        interface IHTMLDOMNode;
                        interface IHTMLControlElement;
                        interface IHTMLTextContainer;
                        interface IHTMLBodyElement;
                        interface IHTMLBodyElement2;
};
cpp_quote("EXTERN_C const GUID CLSID_CBodyElement;")
[
    odl,
    oleautomation,
    dual,
    uuid(3050f1d9-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLFontElement : IDispatch
{
    [propput, id(DISPID_IHTMLFONTELEMENT_COLOR), displaybind, bindable] HRESULT color([in] VARIANT v);
    [propget, id(DISPID_IHTMLFONTELEMENT_COLOR), displaybind, bindable] HRESULT color([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLFONTELEMENT_FACE), displaybind, bindable] HRESULT face([in] BSTR v);
    [propget, id(DISPID_IHTMLFONTELEMENT_FACE), displaybind, bindable] HRESULT face([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLFONTELEMENT_SIZE), displaybind, bindable] HRESULT size([in] VARIANT v);
    [propget, id(DISPID_IHTMLFONTELEMENT_SIZE), displaybind, bindable] HRESULT size([retval, out] VARIANT * p);
};
[
    hidden,
    uuid(3050f512-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTMLFontElement
{
properties:
methods:
    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)] void setAttribute([in] BSTR strAttributeName,[in] VARIANT AttributeValue,[defaultvalue(1), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)] VARIANT getAttribute([in] BSTR strAttributeName,[defaultvalue(0), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)] VARIANT_BOOL removeAttribute([in] BSTR strAttributeName,[defaultvalue(1), in] LONG lFlags);
    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] void className(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] BSTR className();
    [propput, id(DISPID_IHTMLELEMENT_ID), bindable] void id(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_ID), bindable] BSTR id();
    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)] BSTR tagName();
    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)] IHTMLElement* parentElement();
    [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable] IHTMLStyle* style();
    [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] void onhelp(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] VARIANT onhelp();
    [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] void onclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] VARIANT onclick();
    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] void ondblclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] VARIANT ondblclick();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] void onkeydown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] VARIANT onkeydown();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] void onkeyup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] VARIANT onkeyup();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] void onkeypress(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] VARIANT onkeypress();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] void onmouseout(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] VARIANT onmouseout();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] void onmouseover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] VARIANT onmouseover();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] void onmousemove(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] VARIANT onmousemove();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] void onmousedown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] VARIANT onmousedown();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] void onmouseup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] VARIANT onmouseup();
    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)] IDispatch* document();
    [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] void title(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] BSTR title();
    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] void language(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] BSTR language();
    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] void onselectstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] VARIANT onselectstart();
    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)] void scrollIntoView([optional, in] VARIANT varargStart);
    [id(DISPID_IHTMLELEMENT_CONTAINS)] VARIANT_BOOL contains([in] IHTMLElement* pChild);
    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable] long sourceIndex();
    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)] VARIANT recordNumber();
    [propput, id(DISPID_IHTMLELEMENT_LANG)] void lang(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANG)] BSTR lang();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)] long offsetLeft();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)] long offsetTop();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)] long offsetWidth();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)] long offsetHeight();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)] IHTMLElement* offsetParent();
    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)] void innerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)] BSTR innerHTML();
    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)] void innerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)] BSTR innerText();
    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)] void outerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)] BSTR outerHTML();
    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)] void outerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)] BSTR outerText();
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)] void insertAdjacentHTML([in] BSTR where,[in] BSTR html);
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)] void insertAdjacentText([in] BSTR where,[in] BSTR text);
    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)] IHTMLElement* parentTextEdit();
    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)] VARIANT_BOOL isTextEdit();
    [id(DISPID_IHTMLELEMENT_CLICK)] void click();
    [propget, id(DISPID_IHTMLELEMENT_FILTERS)] IHTMLFiltersCollection* filters();
    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] void ondragstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] VARIANT ondragstart();
    [id(DISPID_IHTMLELEMENT_TOSTRING)] BSTR toString();
    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] void onbeforeupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] VARIANT onbeforeupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] void onafterupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] VARIANT onafterupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] void onerrorupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] VARIANT onerrorupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] void onrowexit(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] VARIANT onrowexit();
    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] void onrowenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] VARIANT onrowenter();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] void ondatasetchanged(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] VARIANT ondatasetchanged();
    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] void ondataavailable(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] VARIANT ondataavailable();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] void ondatasetcomplete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] VARIANT ondatasetcomplete();
    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] void onfilterchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] VARIANT onfilterchange();
    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)] IDispatch* children();
    [propget, id(DISPID_IHTMLELEMENT_ALL)] IDispatch* all();
    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)] BSTR scopeName();
    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)] void setCapture([defaultvalue(-1), in] VARIANT_BOOL containerCapture);
    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)] void releaseCapture();
    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] void onlosecapture(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] VARIANT onlosecapture();
    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)] BSTR componentFromPoint([in] long x,[in] long y);
    [id(DISPID_IHTMLELEMENT2_DOSCROLL)] void doScroll([optional, in] VARIANT component);
    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] void onscroll(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] VARIANT onscroll();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] void ondrag(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] VARIANT ondrag();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] void ondragend(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] VARIANT ondragend();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] void ondragenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] VARIANT ondragenter();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] void ondragover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] VARIANT ondragover();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] void ondragleave(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] VARIANT ondragleave();
    [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] void ondrop(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] VARIANT ondrop();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] void onbeforecut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] VARIANT onbeforecut();
    [propput, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] void oncut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] VARIANT oncut();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] void onbeforecopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] VARIANT onbeforecopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] void oncopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] VARIANT oncopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] void onbeforepaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] VARIANT onbeforepaste();
    [propput, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] void onpaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] VARIANT onpaste();
    [propget, id(DISPID_IHTMLELEMENT2_CURRENTSTYLE), nonbrowsable] IHTMLCurrentStyle* currentStyle();
    [propput, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] void onpropertychange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] VARIANT onpropertychange();
    [id(DISPID_IHTMLELEMENT2_GETCLIENTRECTS)] IHTMLRectCollection* getClientRects();
    [id(DISPID_IHTMLELEMENT2_GETBOUNDINGCLIENTRECT)] IHTMLRect* getBoundingClientRect();
    [id(DISPID_IHTMLELEMENT2_SETEXPRESSION)] void setExpression([in] BSTR propname,[in] BSTR expression,[defaultvalue(""), in] BSTR language);
    [id(DISPID_IHTMLELEMENT2_GETEXPRESSION)] VARIANT getExpression([in] BSTR propname);
    [id(DISPID_IHTMLELEMENT2_REMOVEEXPRESSION)] VARIANT_BOOL removeExpression([in] BSTR propname);
    [propput, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] void tabIndex(short v);
    [propget, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] short tabIndex();
    [id(DISPID_IHTMLELEMENT2_FOCUS)] void focus();
    [propput, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] void accessKey(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] BSTR accessKey();
    [propput, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] void onblur(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] VARIANT onblur();
    [propput, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] void onfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] VARIANT onfocus();
    [propput, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] void onresize(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] VARIANT onresize();
    [id(DISPID_IHTMLELEMENT2_BLUR)] void blur();
    [id(DISPID_IHTMLELEMENT2_ADDFILTER)] void addFilter([in] IUnknown* pUnk);
    [id(DISPID_IHTMLELEMENT2_REMOVEFILTER)] void removeFilter([in] IUnknown* pUnk);
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTHEIGHT), displaybind, bindable] long clientHeight();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTWIDTH), displaybind, bindable] long clientWidth();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTTOP), displaybind, bindable] long clientTop();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTLEFT), displaybind, bindable] long clientLeft();
    [id(DISPID_IHTMLELEMENT2_ATTACHEVENT)] VARIANT_BOOL attachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [id(DISPID_IHTMLELEMENT2_DETACHEVENT)] void detachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATE)] VARIANT readyState();
    [propput, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] void onreadystatechange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] VARIANT onreadystatechange();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] void onrowsdelete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] VARIANT onrowsdelete();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] void onrowsinserted(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] VARIANT onrowsinserted();
    [propput, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] void oncellchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] VARIANT oncellchange();
    [propput, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] void dir(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] BSTR dir();
    [id(DISPID_IHTMLELEMENT2_CREATECONTROLRANGE)] IDispatch* createControlRange();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLHEIGHT), displaybind, bindable] long scrollHeight();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLWIDTH), displaybind, bindable] long scrollWidth();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] void scrollTop(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] long scrollTop();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] void scrollLeft(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] long scrollLeft();
    [id(DISPID_IHTMLELEMENT2_CLEARATTRIBUTES)] void clearAttributes();
    [id(DISPID_IHTMLELEMENT2_MERGEATTRIBUTES)] void mergeAttributes([in] IHTMLElement* mergeThis);
    [propput, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] void oncontextmenu(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] VARIANT oncontextmenu();
    [id(DISPID_IHTMLELEMENT2_INSERTADJACENTELEMENT)] IHTMLElement* insertAdjacentElement([in] BSTR where,[in] IHTMLElement* insertedElement);
    [id(DISPID_IHTMLELEMENT2_APPLYELEMENT)] IHTMLElement* applyElement([in] IHTMLElement* apply,[in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_GETADJACENTTEXT)] BSTR getAdjacentText([in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_REPLACEADJACENTTEXT)] BSTR replaceAdjacentText([in] BSTR where,[in] BSTR newText);
    [propget, id(DISPID_IHTMLELEMENT2_CANHAVECHILDREN)] VARIANT_BOOL canHaveChildren();
    [id(DISPID_IHTMLELEMENT2_ADDBEHAVIOR)] long addBehavior([in] BSTR bstrUrl,[optional, in] VARIANT* pvarFactory);
    [id(DISPID_IHTMLELEMENT2_REMOVEBEHAVIOR)] VARIANT_BOOL removeBehavior([in] long cookie);
    [propget, id(DISPID_IHTMLELEMENT2_RUNTIMESTYLE), nonbrowsable] IHTMLStyle* runtimeStyle();
    [propget, id(DISPID_IHTMLELEMENT2_BEHAVIORURNS)] IDispatch* behaviorUrns();
    [propput, id(DISPID_IHTMLELEMENT2_TAGURN)] void tagUrn(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_TAGURN)] BSTR tagUrn();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] void onbeforeeditfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] VARIANT onbeforeeditfocus();
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATEVALUE), hidden, restricted] long readyStateValue();
    [id(DISPID_IHTMLELEMENT2_GETELEMENTSBYTAGNAME)] IHTMLElementCollection* getElementsByTagName([in] BSTR v);
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUENUMBER), hidden] long uniqueNumber();
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUEID), hidden] BSTR uniqueID();
    [propget, id(DISPID_IHTMLDOMNODE_NODETYPE)] long nodeType();
    [propget, id(DISPID_IHTMLDOMNODE_PARENTNODE)] IHTMLDOMNode* parentNode();
    [id(DISPID_IHTMLDOMNODE_HASCHILDNODES)] VARIANT_BOOL hasChildNodes();
    [propget, id(DISPID_IHTMLDOMNODE_CHILDNODES)] IDispatch* childNodes();
    [propget, id(DISPID_IHTMLDOMNODE_ATTRIBUTES)] IDispatch* attributes();
    [id(DISPID_IHTMLDOMNODE_INSERTBEFORE)] IHTMLDOMNode* insertBefore([in] IHTMLDOMNode* newChild,[optional, in] VARIANT refChild);
    [id(DISPID_IHTMLDOMNODE_REMOVECHILD)] IHTMLDOMNode* removeChild([in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_REPLACECHILD)] IHTMLDOMNode* replaceChild([in] IHTMLDOMNode* newChild,[in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_CLONENODE)] IHTMLDOMNode* cloneNode([in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_REMOVENODE)] IHTMLDOMNode* removeNode([defaultvalue(0), in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_SWAPNODE)] IHTMLDOMNode* swapNode([in] IHTMLDOMNode* otherNode);
    [id(DISPID_IHTMLDOMNODE_REPLACENODE)] IHTMLDOMNode* replaceNode([in] IHTMLDOMNode* replacement);
    [id(DISPID_IHTMLDOMNODE_APPENDCHILD)] IHTMLDOMNode* appendChild([in] IHTMLDOMNode* newChild);
    [propget, id(DISPID_IHTMLDOMNODE_NODENAME)] BSTR nodeName();
    [propput, id(DISPID_IHTMLDOMNODE_NODEVALUE)] void nodeValue(VARIANT v);
    [propget, id(DISPID_IHTMLDOMNODE_NODEVALUE)] VARIANT nodeValue();
    [propget, id(DISPID_IHTMLDOMNODE_FIRSTCHILD)] IHTMLDOMNode* firstChild();
    [propget, id(DISPID_IHTMLDOMNODE_LASTCHILD)] IHTMLDOMNode* lastChild();
    [propget, id(DISPID_IHTMLDOMNODE_PREVIOUSSIBLING)] IHTMLDOMNode* previousSibling();
    [propget, id(DISPID_IHTMLDOMNODE_NEXTSIBLING)] IHTMLDOMNode* nextSibling();
    [propput, id(DISPID_IHTMLFONTELEMENT_COLOR), displaybind, bindable] void color(VARIANT v);
    [propget, id(DISPID_IHTMLFONTELEMENT_COLOR), displaybind, bindable] VARIANT color();
    [propput, id(DISPID_IHTMLFONTELEMENT_FACE), displaybind, bindable] void face(BSTR v);
    [propget, id(DISPID_IHTMLFONTELEMENT_FACE), displaybind, bindable] BSTR face();
    [propput, id(DISPID_IHTMLFONTELEMENT_SIZE), displaybind, bindable] void size(VARIANT v);
    [propget, id(DISPID_IHTMLFONTELEMENT_SIZE), displaybind, bindable] VARIANT size();
};
[
    uuid(3050f27b-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLFontElement
{
    [default]           dispinterface DispHTMLFontElement;
    [source, default]   dispinterface HTMLElementEvents;
    [source]            dispinterface HTMLElementEvents2;
                        interface IHTMLElement;
                        interface IHTMLElement2;
                        interface IHTMLUniqueName;
                        interface IHTMLDOMNode;
                        interface IHTMLFontElement;
};
cpp_quote("EXTERN_C const GUID CLSID_CFontElement;")
[
    hidden,
    uuid(3050f610-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface HTMLAnchorEvents2
{
properties:
methods:
    [id(DISPID_HTMLELEMENTEVENTS2_ONHELP)] VARIANT_BOOL onhelp([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCLICK)] VARIANT_BOOL onclick([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDBLCLICK)] VARIANT_BOOL ondblclick([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONKEYPRESS)] VARIANT_BOOL onkeypress([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONKEYDOWN)] void onkeydown([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONKEYUP)] void onkeyup([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEOUT)] void onmouseout([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEOVER)] void onmouseover([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEMOVE)] void onmousemove([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEDOWN)] void onmousedown([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEUP)] void onmouseup([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONSELECTSTART)] VARIANT_BOOL onselectstart([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONFILTERCHANGE)] void onfilterchange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGSTART)] VARIANT_BOOL ondragstart([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFOREUPDATE)] VARIANT_BOOL onbeforeupdate([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONAFTERUPDATE)] void onafterupdate([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONERRORUPDATE)] VARIANT_BOOL onerrorupdate([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWEXIT)] VARIANT_BOOL onrowexit([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWENTER)] void onrowenter([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDATASETCHANGED)] void ondatasetchanged([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDATAAVAILABLE)] void ondataavailable([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDATASETCOMPLETE)] void ondatasetcomplete([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONLOSECAPTURE)] void onlosecapture([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONPROPERTYCHANGE)] void onpropertychange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONSCROLL)] void onscroll([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONFOCUS)] void onfocus([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBLUR)] void onblur([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONRESIZE)] void onresize([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAG)] VARIANT_BOOL ondrag([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGEND)] void ondragend([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGENTER)] VARIANT_BOOL ondragenter([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGOVER)] VARIANT_BOOL ondragover([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGLEAVE)] void ondragleave([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDROP)] VARIANT_BOOL ondrop([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFORECUT)] VARIANT_BOOL onbeforecut([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCUT)] VARIANT_BOOL oncut([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFORECOPY)] VARIANT_BOOL onbeforecopy([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCOPY)] VARIANT_BOOL oncopy([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFOREPASTE)] VARIANT_BOOL onbeforepaste([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONPASTE)] VARIANT_BOOL onpaste([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCONTEXTMENU)] VARIANT_BOOL oncontextmenu([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWSDELETE)] void onrowsdelete([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWSINSERTED)] void onrowsinserted([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCELLCHANGE)] void oncellchange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONREADYSTATECHANGE)] void onreadystatechange([in] IHTMLEventObj* pEvtObj);
};
[
    hidden,
    uuid(3050f29d-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface HTMLAnchorEvents
{
properties:
methods:
    [id(DISPID_HTMLELEMENTEVENTS_ONHELP)] VARIANT_BOOL onhelp();
    [id(DISPID_HTMLELEMENTEVENTS_ONCLICK)] VARIANT_BOOL onclick();
    [id(DISPID_HTMLELEMENTEVENTS_ONDBLCLICK)] VARIANT_BOOL ondblclick();
    [id(DISPID_HTMLELEMENTEVENTS_ONKEYPRESS)] VARIANT_BOOL onkeypress();
    [id(DISPID_HTMLELEMENTEVENTS_ONKEYDOWN)] void onkeydown();
    [id(DISPID_HTMLELEMENTEVENTS_ONKEYUP)] void onkeyup();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEOUT)] void onmouseout();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEOVER)] void onmouseover();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEMOVE)] void onmousemove();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEDOWN)] void onmousedown();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEUP)] void onmouseup();
    [id(DISPID_HTMLELEMENTEVENTS_ONSELECTSTART)] VARIANT_BOOL onselectstart();
    [id(DISPID_HTMLELEMENTEVENTS_ONFILTERCHANGE)] void onfilterchange();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGSTART)] VARIANT_BOOL ondragstart();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREUPDATE)] VARIANT_BOOL onbeforeupdate();
    [id(DISPID_HTMLELEMENTEVENTS_ONAFTERUPDATE)] void onafterupdate();
    [id(DISPID_HTMLELEMENTEVENTS_ONERRORUPDATE)] VARIANT_BOOL onerrorupdate();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWEXIT)] VARIANT_BOOL onrowexit();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWENTER)] void onrowenter();
    [id(DISPID_HTMLELEMENTEVENTS_ONDATASETCHANGED)] void ondatasetchanged();
    [id(DISPID_HTMLELEMENTEVENTS_ONDATAAVAILABLE)] void ondataavailable();
    [id(DISPID_HTMLELEMENTEVENTS_ONDATASETCOMPLETE)] void ondatasetcomplete();
    [id(DISPID_HTMLELEMENTEVENTS_ONLOSECAPTURE)] void onlosecapture();
    [id(DISPID_HTMLELEMENTEVENTS_ONPROPERTYCHANGE)] void onpropertychange();
    [id(DISPID_HTMLELEMENTEVENTS_ONSCROLL)] void onscroll();
    [id(DISPID_HTMLELEMENTEVENTS_ONFOCUS)] void onfocus();
    [id(DISPID_HTMLELEMENTEVENTS_ONBLUR)] void onblur();
    [id(DISPID_HTMLELEMENTEVENTS_ONRESIZE)] void onresize();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAG)] VARIANT_BOOL ondrag();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGEND)] void ondragend();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGENTER)] VARIANT_BOOL ondragenter();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGOVER)] VARIANT_BOOL ondragover();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGLEAVE)] void ondragleave();
    [id(DISPID_HTMLELEMENTEVENTS_ONDROP)] VARIANT_BOOL ondrop();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFORECUT)] VARIANT_BOOL onbeforecut();
    [id(DISPID_HTMLELEMENTEVENTS_ONCUT)] VARIANT_BOOL oncut();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFORECOPY)] VARIANT_BOOL onbeforecopy();
    [id(DISPID_HTMLELEMENTEVENTS_ONCOPY)] VARIANT_BOOL oncopy();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREPASTE)] VARIANT_BOOL onbeforepaste();
    [id(DISPID_HTMLELEMENTEVENTS_ONPASTE)] VARIANT_BOOL onpaste();
    [id(DISPID_HTMLELEMENTEVENTS_ONCONTEXTMENU)] VARIANT_BOOL oncontextmenu();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWSDELETE)] void onrowsdelete();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWSINSERTED)] void onrowsinserted();
    [id(DISPID_HTMLELEMENTEVENTS_ONCELLCHANGE)] void oncellchange();
    [id(DISPID_HTMLELEMENTEVENTS_ONREADYSTATECHANGE)] void onreadystatechange();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREEDITFOCUS)] void onbeforeeditfocus();
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f1da-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLAnchorElement : IDispatch
{
    [propput, id(DISPID_IHTMLANCHORELEMENT_HREF), displaybind, bindable] HRESULT href([in] BSTR v);
    [propget, id(DISPID_IHTMLANCHORELEMENT_HREF), displaybind, bindable] HRESULT href([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLANCHORELEMENT_TARGET), displaybind, bindable] HRESULT target([in] BSTR v);
    [propget, id(DISPID_IHTMLANCHORELEMENT_TARGET), displaybind, bindable] HRESULT target([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLANCHORELEMENT_REL), displaybind, bindable] HRESULT rel([in] BSTR v);
    [propget, id(DISPID_IHTMLANCHORELEMENT_REL), displaybind, bindable] HRESULT rel([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLANCHORELEMENT_REV), displaybind, bindable] HRESULT rev([in] BSTR v);
    [propget, id(DISPID_IHTMLANCHORELEMENT_REV), displaybind, bindable] HRESULT rev([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLANCHORELEMENT_URN), displaybind, bindable] HRESULT urn([in] BSTR v);
    [propget, id(DISPID_IHTMLANCHORELEMENT_URN), displaybind, bindable] HRESULT urn([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLANCHORELEMENT_METHODS), displaybind, bindable] HRESULT Methods([in] BSTR v);
    [propget, id(DISPID_IHTMLANCHORELEMENT_METHODS), displaybind, bindable] HRESULT Methods([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLANCHORELEMENT_NAME), displaybind, bindable] HRESULT name([in] BSTR v);
    [propget, id(DISPID_IHTMLANCHORELEMENT_NAME), displaybind, bindable] HRESULT name([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLANCHORELEMENT_HOST)] HRESULT host([in] BSTR v);
    [propget, id(DISPID_IHTMLANCHORELEMENT_HOST)] HRESULT host([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLANCHORELEMENT_HOSTNAME)] HRESULT hostname([in] BSTR v);
    [propget, id(DISPID_IHTMLANCHORELEMENT_HOSTNAME)] HRESULT hostname([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLANCHORELEMENT_PATHNAME)] HRESULT pathname([in] BSTR v);
    [propget, id(DISPID_IHTMLANCHORELEMENT_PATHNAME)] HRESULT pathname([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLANCHORELEMENT_PORT)] HRESULT port([in] BSTR v);
    [propget, id(DISPID_IHTMLANCHORELEMENT_PORT)] HRESULT port([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLANCHORELEMENT_PROTOCOL)] HRESULT protocol([in] BSTR v);
    [propget, id(DISPID_IHTMLANCHORELEMENT_PROTOCOL)] HRESULT protocol([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLANCHORELEMENT_SEARCH)] HRESULT search([in] BSTR v);
    [propget, id(DISPID_IHTMLANCHORELEMENT_SEARCH)] HRESULT search([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLANCHORELEMENT_HASH)] HRESULT hash([in] BSTR v);
    [propget, id(DISPID_IHTMLANCHORELEMENT_HASH)] HRESULT hash([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLANCHORELEMENT_ONBLUR), displaybind, bindable] HRESULT onblur([in] VARIANT v);
    [propget, id(DISPID_IHTMLANCHORELEMENT_ONBLUR), displaybind, bindable] HRESULT onblur([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLANCHORELEMENT_ONFOCUS), displaybind, bindable] HRESULT onfocus([in] VARIANT v);
    [propget, id(DISPID_IHTMLANCHORELEMENT_ONFOCUS), displaybind, bindable] HRESULT onfocus([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLANCHORELEMENT_ACCESSKEY), displaybind, bindable] HRESULT accessKey([in] BSTR v);
    [propget, id(DISPID_IHTMLANCHORELEMENT_ACCESSKEY), displaybind, bindable] HRESULT accessKey([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLANCHORELEMENT_PROTOCOLLONG)] HRESULT protocolLong([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLANCHORELEMENT_MIMETYPE)] HRESULT mimeType([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLANCHORELEMENT_NAMEPROP)] HRESULT nameProp([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLANCHORELEMENT_TABINDEX), displaybind, bindable] HRESULT tabIndex([in] short v);
    [propget, id(DISPID_IHTMLANCHORELEMENT_TABINDEX), displaybind, bindable] HRESULT tabIndex([retval, out] short * p);
    [id(DISPID_IHTMLANCHORELEMENT_FOCUS)] HRESULT focus();
    [id(DISPID_IHTMLANCHORELEMENT_BLUR)] HRESULT blur();
};
[
    hidden,
    uuid(3050f502-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTMLAnchorElement
{
properties:
methods:
    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)] void setAttribute([in] BSTR strAttributeName,[in] VARIANT AttributeValue,[defaultvalue(1), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)] VARIANT getAttribute([in] BSTR strAttributeName,[defaultvalue(0), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)] VARIANT_BOOL removeAttribute([in] BSTR strAttributeName,[defaultvalue(1), in] LONG lFlags);
    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] void className(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] BSTR className();
    [propput, id(DISPID_IHTMLELEMENT_ID), bindable] void id(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_ID), bindable] BSTR id();
    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)] BSTR tagName();
    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)] IHTMLElement* parentElement();
    [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable] IHTMLStyle* style();
    [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] void onhelp(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] VARIANT onhelp();
    [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] void onclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] VARIANT onclick();
    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] void ondblclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] VARIANT ondblclick();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] void onkeydown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] VARIANT onkeydown();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] void onkeyup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] VARIANT onkeyup();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] void onkeypress(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] VARIANT onkeypress();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] void onmouseout(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] VARIANT onmouseout();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] void onmouseover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] VARIANT onmouseover();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] void onmousemove(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] VARIANT onmousemove();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] void onmousedown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] VARIANT onmousedown();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] void onmouseup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] VARIANT onmouseup();
    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)] IDispatch* document();
    [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] void title(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] BSTR title();
    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] void language(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] BSTR language();
    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] void onselectstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] VARIANT onselectstart();
    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)] void scrollIntoView([optional, in] VARIANT varargStart);
    [id(DISPID_IHTMLELEMENT_CONTAINS)] VARIANT_BOOL contains([in] IHTMLElement* pChild);
    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable] long sourceIndex();
    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)] VARIANT recordNumber();
    [propput, id(DISPID_IHTMLELEMENT_LANG)] void lang(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANG)] BSTR lang();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)] long offsetLeft();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)] long offsetTop();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)] long offsetWidth();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)] long offsetHeight();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)] IHTMLElement* offsetParent();
    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)] void innerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)] BSTR innerHTML();
    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)] void innerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)] BSTR innerText();
    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)] void outerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)] BSTR outerHTML();
    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)] void outerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)] BSTR outerText();
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)] void insertAdjacentHTML([in] BSTR where,[in] BSTR html);
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)] void insertAdjacentText([in] BSTR where,[in] BSTR text);
    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)] IHTMLElement* parentTextEdit();
    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)] VARIANT_BOOL isTextEdit();
    [id(DISPID_IHTMLELEMENT_CLICK)] void click();
    [propget, id(DISPID_IHTMLELEMENT_FILTERS)] IHTMLFiltersCollection* filters();
    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] void ondragstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] VARIANT ondragstart();
    [id(DISPID_IHTMLELEMENT_TOSTRING)] BSTR toString();
    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] void onbeforeupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] VARIANT onbeforeupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] void onafterupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] VARIANT onafterupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] void onerrorupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] VARIANT onerrorupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] void onrowexit(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] VARIANT onrowexit();
    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] void onrowenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] VARIANT onrowenter();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] void ondatasetchanged(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] VARIANT ondatasetchanged();
    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] void ondataavailable(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] VARIANT ondataavailable();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] void ondatasetcomplete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] VARIANT ondatasetcomplete();
    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] void onfilterchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] VARIANT onfilterchange();
    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)] IDispatch* children();
    [propget, id(DISPID_IHTMLELEMENT_ALL)] IDispatch* all();
    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)] BSTR scopeName();
    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)] void setCapture([defaultvalue(-1), in] VARIANT_BOOL containerCapture);
    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)] void releaseCapture();
    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] void onlosecapture(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] VARIANT onlosecapture();
    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)] BSTR componentFromPoint([in] long x,[in] long y);
    [id(DISPID_IHTMLELEMENT2_DOSCROLL)] void doScroll([optional, in] VARIANT component);
    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] void onscroll(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] VARIANT onscroll();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] void ondrag(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] VARIANT ondrag();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] void ondragend(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] VARIANT ondragend();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] void ondragenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] VARIANT ondragenter();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] void ondragover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] VARIANT ondragover();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] void ondragleave(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] VARIANT ondragleave();
    [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] void ondrop(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] VARIANT ondrop();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] void onbeforecut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] VARIANT onbeforecut();
    [propput, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] void oncut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] VARIANT oncut();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] void onbeforecopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] VARIANT onbeforecopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] void oncopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] VARIANT oncopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] void onbeforepaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] VARIANT onbeforepaste();
    [propput, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] void onpaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] VARIANT onpaste();
    [propget, id(DISPID_IHTMLELEMENT2_CURRENTSTYLE), nonbrowsable] IHTMLCurrentStyle* currentStyle();
    [propput, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] void onpropertychange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] VARIANT onpropertychange();
    [id(DISPID_IHTMLELEMENT2_GETCLIENTRECTS)] IHTMLRectCollection* getClientRects();
    [id(DISPID_IHTMLELEMENT2_GETBOUNDINGCLIENTRECT)] IHTMLRect* getBoundingClientRect();
    [id(DISPID_IHTMLELEMENT2_SETEXPRESSION)] void setExpression([in] BSTR propname,[in] BSTR expression,[defaultvalue(""), in] BSTR language);
    [id(DISPID_IHTMLELEMENT2_GETEXPRESSION)] VARIANT getExpression([in] BSTR propname);
    [id(DISPID_IHTMLELEMENT2_REMOVEEXPRESSION)] VARIANT_BOOL removeExpression([in] BSTR propname);
    [propput, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] void tabIndex(short v);
    [propget, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] short tabIndex();
    [id(DISPID_IHTMLELEMENT2_FOCUS)] void focus();
    [propput, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] void accessKey(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] BSTR accessKey();
    [propput, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] void onblur(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] VARIANT onblur();
    [propput, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] void onfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] VARIANT onfocus();
    [propput, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] void onresize(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] VARIANT onresize();
    [id(DISPID_IHTMLELEMENT2_BLUR)] void blur();
    [id(DISPID_IHTMLELEMENT2_ADDFILTER)] void addFilter([in] IUnknown* pUnk);
    [id(DISPID_IHTMLELEMENT2_REMOVEFILTER)] void removeFilter([in] IUnknown* pUnk);
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTHEIGHT), displaybind, bindable] long clientHeight();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTWIDTH), displaybind, bindable] long clientWidth();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTTOP), displaybind, bindable] long clientTop();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTLEFT), displaybind, bindable] long clientLeft();
    [id(DISPID_IHTMLELEMENT2_ATTACHEVENT)] VARIANT_BOOL attachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [id(DISPID_IHTMLELEMENT2_DETACHEVENT)] void detachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATE)] VARIANT readyState();
    [propput, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] void onreadystatechange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] VARIANT onreadystatechange();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] void onrowsdelete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] VARIANT onrowsdelete();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] void onrowsinserted(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] VARIANT onrowsinserted();
    [propput, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] void oncellchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] VARIANT oncellchange();
    [propput, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] void dir(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] BSTR dir();
    [id(DISPID_IHTMLELEMENT2_CREATECONTROLRANGE)] IDispatch* createControlRange();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLHEIGHT), displaybind, bindable] long scrollHeight();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLWIDTH), displaybind, bindable] long scrollWidth();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] void scrollTop(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] long scrollTop();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] void scrollLeft(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] long scrollLeft();
    [id(DISPID_IHTMLELEMENT2_CLEARATTRIBUTES)] void clearAttributes();
    [id(DISPID_IHTMLELEMENT2_MERGEATTRIBUTES)] void mergeAttributes([in] IHTMLElement* mergeThis);
    [propput, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] void oncontextmenu(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] VARIANT oncontextmenu();
    [id(DISPID_IHTMLELEMENT2_INSERTADJACENTELEMENT)] IHTMLElement* insertAdjacentElement([in] BSTR where,[in] IHTMLElement* insertedElement);
    [id(DISPID_IHTMLELEMENT2_APPLYELEMENT)] IHTMLElement* applyElement([in] IHTMLElement* apply,[in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_GETADJACENTTEXT)] BSTR getAdjacentText([in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_REPLACEADJACENTTEXT)] BSTR replaceAdjacentText([in] BSTR where,[in] BSTR newText);
    [propget, id(DISPID_IHTMLELEMENT2_CANHAVECHILDREN)] VARIANT_BOOL canHaveChildren();
    [id(DISPID_IHTMLELEMENT2_ADDBEHAVIOR)] long addBehavior([in] BSTR bstrUrl,[optional, in] VARIANT* pvarFactory);
    [id(DISPID_IHTMLELEMENT2_REMOVEBEHAVIOR)] VARIANT_BOOL removeBehavior([in] long cookie);
    [propget, id(DISPID_IHTMLELEMENT2_RUNTIMESTYLE), nonbrowsable] IHTMLStyle* runtimeStyle();
    [propget, id(DISPID_IHTMLELEMENT2_BEHAVIORURNS)] IDispatch* behaviorUrns();
    [propput, id(DISPID_IHTMLELEMENT2_TAGURN)] void tagUrn(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_TAGURN)] BSTR tagUrn();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] void onbeforeeditfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] VARIANT onbeforeeditfocus();
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATEVALUE), hidden, restricted] long readyStateValue();
    [id(DISPID_IHTMLELEMENT2_GETELEMENTSBYTAGNAME)] IHTMLElementCollection* getElementsByTagName([in] BSTR v);
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUENUMBER), hidden] long uniqueNumber();
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUEID), hidden] BSTR uniqueID();
    [propget, id(DISPID_IHTMLDOMNODE_NODETYPE)] long nodeType();
    [propget, id(DISPID_IHTMLDOMNODE_PARENTNODE)] IHTMLDOMNode* parentNode();
    [id(DISPID_IHTMLDOMNODE_HASCHILDNODES)] VARIANT_BOOL hasChildNodes();
    [propget, id(DISPID_IHTMLDOMNODE_CHILDNODES)] IDispatch* childNodes();
    [propget, id(DISPID_IHTMLDOMNODE_ATTRIBUTES)] IDispatch* attributes();
    [id(DISPID_IHTMLDOMNODE_INSERTBEFORE)] IHTMLDOMNode* insertBefore([in] IHTMLDOMNode* newChild,[optional, in] VARIANT refChild);
    [id(DISPID_IHTMLDOMNODE_REMOVECHILD)] IHTMLDOMNode* removeChild([in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_REPLACECHILD)] IHTMLDOMNode* replaceChild([in] IHTMLDOMNode* newChild,[in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_CLONENODE)] IHTMLDOMNode* cloneNode([in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_REMOVENODE)] IHTMLDOMNode* removeNode([defaultvalue(0), in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_SWAPNODE)] IHTMLDOMNode* swapNode([in] IHTMLDOMNode* otherNode);
    [id(DISPID_IHTMLDOMNODE_REPLACENODE)] IHTMLDOMNode* replaceNode([in] IHTMLDOMNode* replacement);
    [id(DISPID_IHTMLDOMNODE_APPENDCHILD)] IHTMLDOMNode* appendChild([in] IHTMLDOMNode* newChild);
    [propget, id(DISPID_IHTMLDOMNODE_NODENAME)] BSTR nodeName();
    [propput, id(DISPID_IHTMLDOMNODE_NODEVALUE)] void nodeValue(VARIANT v);
    [propget, id(DISPID_IHTMLDOMNODE_NODEVALUE)] VARIANT nodeValue();
    [propget, id(DISPID_IHTMLDOMNODE_FIRSTCHILD)] IHTMLDOMNode* firstChild();
    [propget, id(DISPID_IHTMLDOMNODE_LASTCHILD)] IHTMLDOMNode* lastChild();
    [propget, id(DISPID_IHTMLDOMNODE_PREVIOUSSIBLING)] IHTMLDOMNode* previousSibling();
    [propget, id(DISPID_IHTMLDOMNODE_NEXTSIBLING)] IHTMLDOMNode* nextSibling();
    [propput, id(DISPID_IHTMLDATABINDING_DATAFLD)] void dataFld(BSTR v);
    [propget, id(DISPID_IHTMLDATABINDING_DATAFLD)] BSTR dataFld();
    [propput, id(DISPID_IHTMLDATABINDING_DATASRC)] void dataSrc(BSTR v);
    [propget, id(DISPID_IHTMLDATABINDING_DATASRC)] BSTR dataSrc();
    [propput, id(DISPID_IHTMLDATABINDING_DATAFORMATAS)] void dataFormatAs(BSTR v);
    [propget, id(DISPID_IHTMLDATABINDING_DATAFORMATAS)] BSTR dataFormatAs();
    [propput, id(DISPID_IHTMLANCHORELEMENT_HREF), displaybind, bindable] void href(BSTR v);
    [propget, id(DISPID_IHTMLANCHORELEMENT_HREF), displaybind, bindable] BSTR href();
    [propput, id(DISPID_IHTMLANCHORELEMENT_TARGET), displaybind, bindable] void target(BSTR v);
    [propget, id(DISPID_IHTMLANCHORELEMENT_TARGET), displaybind, bindable] BSTR target();
    [propput, id(DISPID_IHTMLANCHORELEMENT_REL), displaybind, bindable] void rel(BSTR v);
    [propget, id(DISPID_IHTMLANCHORELEMENT_REL), displaybind, bindable] BSTR rel();
    [propput, id(DISPID_IHTMLANCHORELEMENT_REV), displaybind, bindable] void rev(BSTR v);
    [propget, id(DISPID_IHTMLANCHORELEMENT_REV), displaybind, bindable] BSTR rev();
    [propput, id(DISPID_IHTMLANCHORELEMENT_URN), displaybind, bindable] void urn(BSTR v);
    [propget, id(DISPID_IHTMLANCHORELEMENT_URN), displaybind, bindable] BSTR urn();
    [propput, id(DISPID_IHTMLANCHORELEMENT_METHODS), displaybind, bindable] void Methods(BSTR v);
    [propget, id(DISPID_IHTMLANCHORELEMENT_METHODS), displaybind, bindable] BSTR Methods();
    [propput, id(DISPID_IHTMLANCHORELEMENT_NAME), displaybind, bindable] void name(BSTR v);
    [propget, id(DISPID_IHTMLANCHORELEMENT_NAME), displaybind, bindable] BSTR name();
    [propput, id(DISPID_IHTMLANCHORELEMENT_HOST)] void host(BSTR v);
    [propget, id(DISPID_IHTMLANCHORELEMENT_HOST)] BSTR host();
    [propput, id(DISPID_IHTMLANCHORELEMENT_HOSTNAME)] void hostname(BSTR v);
    [propget, id(DISPID_IHTMLANCHORELEMENT_HOSTNAME)] BSTR hostname();
    [propput, id(DISPID_IHTMLANCHORELEMENT_PATHNAME)] void pathname(BSTR v);
    [propget, id(DISPID_IHTMLANCHORELEMENT_PATHNAME)] BSTR pathname();
    [propput, id(DISPID_IHTMLANCHORELEMENT_PORT)] void port(BSTR v);
    [propget, id(DISPID_IHTMLANCHORELEMENT_PORT)] BSTR port();
    [propput, id(DISPID_IHTMLANCHORELEMENT_PROTOCOL)] void protocol(BSTR v);
    [propget, id(DISPID_IHTMLANCHORELEMENT_PROTOCOL)] BSTR protocol();
    [propput, id(DISPID_IHTMLANCHORELEMENT_SEARCH)] void search(BSTR v);
    [propget, id(DISPID_IHTMLANCHORELEMENT_SEARCH)] BSTR search();
    [propput, id(DISPID_IHTMLANCHORELEMENT_HASH)] void hash(BSTR v);
    [propget, id(DISPID_IHTMLANCHORELEMENT_HASH)] BSTR hash();
    [propget, id(DISPID_IHTMLANCHORELEMENT_PROTOCOLLONG)] BSTR protocolLong();
    [propget, id(DISPID_IHTMLANCHORELEMENT_MIMETYPE)] BSTR mimeType();
    [propget, id(DISPID_IHTMLANCHORELEMENT_NAMEPROP)] BSTR nameProp();
};
[
    uuid(3050f248-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLAnchorElement
{
    [default]           dispinterface DispHTMLAnchorElement;
    [source, default]   dispinterface HTMLAnchorEvents;
    [source]            dispinterface HTMLAnchorEvents2;
                        interface IHTMLElement;
                        interface IHTMLElement2;
                        interface IHTMLUniqueName;
                        interface IHTMLDOMNode;
                        interface IHTMLDatabinding;
                        interface IHTMLAnchorElement;
};
cpp_quote("EXTERN_C const GUID CLSID_CAnchorElement;")
[
    hidden,
    uuid(3050f61c-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface HTMLLabelEvents2
{
properties:
methods:
    [id(DISPID_HTMLELEMENTEVENTS2_ONHELP)] VARIANT_BOOL onhelp([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCLICK)] VARIANT_BOOL onclick([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDBLCLICK)] VARIANT_BOOL ondblclick([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONKEYPRESS)] VARIANT_BOOL onkeypress([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONKEYDOWN)] void onkeydown([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONKEYUP)] void onkeyup([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEOUT)] void onmouseout([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEOVER)] void onmouseover([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEMOVE)] void onmousemove([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEDOWN)] void onmousedown([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEUP)] void onmouseup([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONSELECTSTART)] VARIANT_BOOL onselectstart([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONFILTERCHANGE)] void onfilterchange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGSTART)] VARIANT_BOOL ondragstart([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFOREUPDATE)] VARIANT_BOOL onbeforeupdate([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONAFTERUPDATE)] void onafterupdate([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONERRORUPDATE)] VARIANT_BOOL onerrorupdate([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWEXIT)] VARIANT_BOOL onrowexit([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWENTER)] void onrowenter([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDATASETCHANGED)] void ondatasetchanged([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDATAAVAILABLE)] void ondataavailable([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDATASETCOMPLETE)] void ondatasetcomplete([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONLOSECAPTURE)] void onlosecapture([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONPROPERTYCHANGE)] void onpropertychange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONSCROLL)] void onscroll([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONFOCUS)] void onfocus([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBLUR)] void onblur([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONRESIZE)] void onresize([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAG)] VARIANT_BOOL ondrag([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGEND)] void ondragend([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGENTER)] VARIANT_BOOL ondragenter([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGOVER)] VARIANT_BOOL ondragover([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGLEAVE)] void ondragleave([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDROP)] VARIANT_BOOL ondrop([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFORECUT)] VARIANT_BOOL onbeforecut([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCUT)] VARIANT_BOOL oncut([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFORECOPY)] VARIANT_BOOL onbeforecopy([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCOPY)] VARIANT_BOOL oncopy([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFOREPASTE)] VARIANT_BOOL onbeforepaste([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONPASTE)] VARIANT_BOOL onpaste([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCONTEXTMENU)] VARIANT_BOOL oncontextmenu([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWSDELETE)] void onrowsdelete([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWSINSERTED)] void onrowsinserted([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCELLCHANGE)] void oncellchange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONREADYSTATECHANGE)] void onreadystatechange([in] IHTMLEventObj* pEvtObj);
};
[
    hidden,
    uuid(3050f329-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface HTMLLabelEvents
{
properties:
methods:
    [id(DISPID_HTMLELEMENTEVENTS_ONHELP)] VARIANT_BOOL onhelp();
    [id(DISPID_HTMLELEMENTEVENTS_ONCLICK)] VARIANT_BOOL onclick();
    [id(DISPID_HTMLELEMENTEVENTS_ONDBLCLICK)] VARIANT_BOOL ondblclick();
    [id(DISPID_HTMLELEMENTEVENTS_ONKEYPRESS)] VARIANT_BOOL onkeypress();
    [id(DISPID_HTMLELEMENTEVENTS_ONKEYDOWN)] void onkeydown();
    [id(DISPID_HTMLELEMENTEVENTS_ONKEYUP)] void onkeyup();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEOUT)] void onmouseout();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEOVER)] void onmouseover();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEMOVE)] void onmousemove();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEDOWN)] void onmousedown();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEUP)] void onmouseup();
    [id(DISPID_HTMLELEMENTEVENTS_ONSELECTSTART)] VARIANT_BOOL onselectstart();
    [id(DISPID_HTMLELEMENTEVENTS_ONFILTERCHANGE)] void onfilterchange();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGSTART)] VARIANT_BOOL ondragstart();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREUPDATE)] VARIANT_BOOL onbeforeupdate();
    [id(DISPID_HTMLELEMENTEVENTS_ONAFTERUPDATE)] void onafterupdate();
    [id(DISPID_HTMLELEMENTEVENTS_ONERRORUPDATE)] VARIANT_BOOL onerrorupdate();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWEXIT)] VARIANT_BOOL onrowexit();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWENTER)] void onrowenter();
    [id(DISPID_HTMLELEMENTEVENTS_ONDATASETCHANGED)] void ondatasetchanged();
    [id(DISPID_HTMLELEMENTEVENTS_ONDATAAVAILABLE)] void ondataavailable();
    [id(DISPID_HTMLELEMENTEVENTS_ONDATASETCOMPLETE)] void ondatasetcomplete();
    [id(DISPID_HTMLELEMENTEVENTS_ONLOSECAPTURE)] void onlosecapture();
    [id(DISPID_HTMLELEMENTEVENTS_ONPROPERTYCHANGE)] void onpropertychange();
    [id(DISPID_HTMLELEMENTEVENTS_ONSCROLL)] void onscroll();
    [id(DISPID_HTMLELEMENTEVENTS_ONFOCUS)] void onfocus();
    [id(DISPID_HTMLELEMENTEVENTS_ONBLUR)] void onblur();
    [id(DISPID_HTMLELEMENTEVENTS_ONRESIZE)] void onresize();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAG)] VARIANT_BOOL ondrag();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGEND)] void ondragend();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGENTER)] VARIANT_BOOL ondragenter();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGOVER)] VARIANT_BOOL ondragover();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGLEAVE)] void ondragleave();
    [id(DISPID_HTMLELEMENTEVENTS_ONDROP)] VARIANT_BOOL ondrop();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFORECUT)] VARIANT_BOOL onbeforecut();
    [id(DISPID_HTMLELEMENTEVENTS_ONCUT)] VARIANT_BOOL oncut();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFORECOPY)] VARIANT_BOOL onbeforecopy();
    [id(DISPID_HTMLELEMENTEVENTS_ONCOPY)] VARIANT_BOOL oncopy();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREPASTE)] VARIANT_BOOL onbeforepaste();
    [id(DISPID_HTMLELEMENTEVENTS_ONPASTE)] VARIANT_BOOL onpaste();
    [id(DISPID_HTMLELEMENTEVENTS_ONCONTEXTMENU)] VARIANT_BOOL oncontextmenu();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWSDELETE)] void onrowsdelete();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWSINSERTED)] void onrowsinserted();
    [id(DISPID_HTMLELEMENTEVENTS_ONCELLCHANGE)] void oncellchange();
    [id(DISPID_HTMLELEMENTEVENTS_ONREADYSTATECHANGE)] void onreadystatechange();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREEDITFOCUS)] void onbeforeeditfocus();
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f32a-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLLabelElement : IDispatch
{
    [propput, id(DISPID_IHTMLLABELELEMENT_HTMLFOR), displaybind, bindable] HRESULT htmlFor([in] BSTR v);
    [propget, id(DISPID_IHTMLLABELELEMENT_HTMLFOR), displaybind, bindable] HRESULT htmlFor([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLLABELELEMENT_ACCESSKEY), displaybind, bindable] HRESULT accessKey([in] BSTR v);
    [propget, id(DISPID_IHTMLLABELELEMENT_ACCESSKEY), displaybind, bindable] HRESULT accessKey([retval, out] BSTR * p);
};
[
    hidden,
    uuid(3050f522-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTMLLabelElement
{
properties:
methods:
    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)] void setAttribute([in] BSTR strAttributeName,[in] VARIANT AttributeValue,[defaultvalue(1), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)] VARIANT getAttribute([in] BSTR strAttributeName,[defaultvalue(0), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)] VARIANT_BOOL removeAttribute([in] BSTR strAttributeName,[defaultvalue(1), in] LONG lFlags);
    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] void className(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] BSTR className();
    [propput, id(DISPID_IHTMLELEMENT_ID), bindable] void id(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_ID), bindable] BSTR id();
    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)] BSTR tagName();
    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)] IHTMLElement* parentElement();
    [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable] IHTMLStyle* style();
    [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] void onhelp(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] VARIANT onhelp();
    [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] void onclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] VARIANT onclick();
    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] void ondblclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] VARIANT ondblclick();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] void onkeydown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] VARIANT onkeydown();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] void onkeyup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] VARIANT onkeyup();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] void onkeypress(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] VARIANT onkeypress();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] void onmouseout(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] VARIANT onmouseout();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] void onmouseover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] VARIANT onmouseover();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] void onmousemove(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] VARIANT onmousemove();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] void onmousedown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] VARIANT onmousedown();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] void onmouseup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] VARIANT onmouseup();
    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)] IDispatch* document();
    [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] void title(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] BSTR title();
    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] void language(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] BSTR language();
    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] void onselectstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] VARIANT onselectstart();
    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)] void scrollIntoView([optional, in] VARIANT varargStart);
    [id(DISPID_IHTMLELEMENT_CONTAINS)] VARIANT_BOOL contains([in] IHTMLElement* pChild);
    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable] long sourceIndex();
    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)] VARIANT recordNumber();
    [propput, id(DISPID_IHTMLELEMENT_LANG)] void lang(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANG)] BSTR lang();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)] long offsetLeft();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)] long offsetTop();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)] long offsetWidth();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)] long offsetHeight();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)] IHTMLElement* offsetParent();
    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)] void innerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)] BSTR innerHTML();
    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)] void innerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)] BSTR innerText();
    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)] void outerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)] BSTR outerHTML();
    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)] void outerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)] BSTR outerText();
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)] void insertAdjacentHTML([in] BSTR where,[in] BSTR html);
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)] void insertAdjacentText([in] BSTR where,[in] BSTR text);
    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)] IHTMLElement* parentTextEdit();
    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)] VARIANT_BOOL isTextEdit();
    [id(DISPID_IHTMLELEMENT_CLICK)] void click();
    [propget, id(DISPID_IHTMLELEMENT_FILTERS)] IHTMLFiltersCollection* filters();
    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] void ondragstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] VARIANT ondragstart();
    [id(DISPID_IHTMLELEMENT_TOSTRING)] BSTR toString();
    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] void onbeforeupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] VARIANT onbeforeupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] void onafterupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] VARIANT onafterupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] void onerrorupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] VARIANT onerrorupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] void onrowexit(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] VARIANT onrowexit();
    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] void onrowenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] VARIANT onrowenter();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] void ondatasetchanged(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] VARIANT ondatasetchanged();
    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] void ondataavailable(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] VARIANT ondataavailable();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] void ondatasetcomplete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] VARIANT ondatasetcomplete();
    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] void onfilterchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] VARIANT onfilterchange();
    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)] IDispatch* children();
    [propget, id(DISPID_IHTMLELEMENT_ALL)] IDispatch* all();
    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)] BSTR scopeName();
    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)] void setCapture([defaultvalue(-1), in] VARIANT_BOOL containerCapture);
    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)] void releaseCapture();
    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] void onlosecapture(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] VARIANT onlosecapture();
    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)] BSTR componentFromPoint([in] long x,[in] long y);
    [id(DISPID_IHTMLELEMENT2_DOSCROLL)] void doScroll([optional, in] VARIANT component);
    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] void onscroll(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] VARIANT onscroll();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] void ondrag(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] VARIANT ondrag();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] void ondragend(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] VARIANT ondragend();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] void ondragenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] VARIANT ondragenter();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] void ondragover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] VARIANT ondragover();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] void ondragleave(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] VARIANT ondragleave();
    [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] void ondrop(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] VARIANT ondrop();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] void onbeforecut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] VARIANT onbeforecut();
    [propput, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] void oncut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] VARIANT oncut();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] void onbeforecopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] VARIANT onbeforecopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] void oncopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] VARIANT oncopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] void onbeforepaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] VARIANT onbeforepaste();
    [propput, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] void onpaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] VARIANT onpaste();
    [propget, id(DISPID_IHTMLELEMENT2_CURRENTSTYLE), nonbrowsable] IHTMLCurrentStyle* currentStyle();
    [propput, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] void onpropertychange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] VARIANT onpropertychange();
    [id(DISPID_IHTMLELEMENT2_GETCLIENTRECTS)] IHTMLRectCollection* getClientRects();
    [id(DISPID_IHTMLELEMENT2_GETBOUNDINGCLIENTRECT)] IHTMLRect* getBoundingClientRect();
    [id(DISPID_IHTMLELEMENT2_SETEXPRESSION)] void setExpression([in] BSTR propname,[in] BSTR expression,[defaultvalue(""), in] BSTR language);
    [id(DISPID_IHTMLELEMENT2_GETEXPRESSION)] VARIANT getExpression([in] BSTR propname);
    [id(DISPID_IHTMLELEMENT2_REMOVEEXPRESSION)] VARIANT_BOOL removeExpression([in] BSTR propname);
    [propput, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] void tabIndex(short v);
    [propget, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] short tabIndex();
    [id(DISPID_IHTMLELEMENT2_FOCUS)] void focus();
    [propput, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] void accessKey(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] BSTR accessKey();
    [propput, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] void onblur(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] VARIANT onblur();
    [propput, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] void onfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] VARIANT onfocus();
    [propput, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] void onresize(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] VARIANT onresize();
    [id(DISPID_IHTMLELEMENT2_BLUR)] void blur();
    [id(DISPID_IHTMLELEMENT2_ADDFILTER)] void addFilter([in] IUnknown* pUnk);
    [id(DISPID_IHTMLELEMENT2_REMOVEFILTER)] void removeFilter([in] IUnknown* pUnk);
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTHEIGHT), displaybind, bindable] long clientHeight();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTWIDTH), displaybind, bindable] long clientWidth();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTTOP), displaybind, bindable] long clientTop();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTLEFT), displaybind, bindable] long clientLeft();
    [id(DISPID_IHTMLELEMENT2_ATTACHEVENT)] VARIANT_BOOL attachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [id(DISPID_IHTMLELEMENT2_DETACHEVENT)] void detachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATE)] VARIANT readyState();
    [propput, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] void onreadystatechange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] VARIANT onreadystatechange();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] void onrowsdelete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] VARIANT onrowsdelete();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] void onrowsinserted(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] VARIANT onrowsinserted();
    [propput, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] void oncellchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] VARIANT oncellchange();
    [propput, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] void dir(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] BSTR dir();
    [id(DISPID_IHTMLELEMENT2_CREATECONTROLRANGE)] IDispatch* createControlRange();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLHEIGHT), displaybind, bindable] long scrollHeight();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLWIDTH), displaybind, bindable] long scrollWidth();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] void scrollTop(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] long scrollTop();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] void scrollLeft(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] long scrollLeft();
    [id(DISPID_IHTMLELEMENT2_CLEARATTRIBUTES)] void clearAttributes();
    [id(DISPID_IHTMLELEMENT2_MERGEATTRIBUTES)] void mergeAttributes([in] IHTMLElement* mergeThis);
    [propput, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] void oncontextmenu(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] VARIANT oncontextmenu();
    [id(DISPID_IHTMLELEMENT2_INSERTADJACENTELEMENT)] IHTMLElement* insertAdjacentElement([in] BSTR where,[in] IHTMLElement* insertedElement);
    [id(DISPID_IHTMLELEMENT2_APPLYELEMENT)] IHTMLElement* applyElement([in] IHTMLElement* apply,[in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_GETADJACENTTEXT)] BSTR getAdjacentText([in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_REPLACEADJACENTTEXT)] BSTR replaceAdjacentText([in] BSTR where,[in] BSTR newText);
    [propget, id(DISPID_IHTMLELEMENT2_CANHAVECHILDREN)] VARIANT_BOOL canHaveChildren();
    [id(DISPID_IHTMLELEMENT2_ADDBEHAVIOR)] long addBehavior([in] BSTR bstrUrl,[optional, in] VARIANT* pvarFactory);
    [id(DISPID_IHTMLELEMENT2_REMOVEBEHAVIOR)] VARIANT_BOOL removeBehavior([in] long cookie);
    [propget, id(DISPID_IHTMLELEMENT2_RUNTIMESTYLE), nonbrowsable] IHTMLStyle* runtimeStyle();
    [propget, id(DISPID_IHTMLELEMENT2_BEHAVIORURNS)] IDispatch* behaviorUrns();
    [propput, id(DISPID_IHTMLELEMENT2_TAGURN)] void tagUrn(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_TAGURN)] BSTR tagUrn();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] void onbeforeeditfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] VARIANT onbeforeeditfocus();
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATEVALUE), hidden, restricted] long readyStateValue();
    [id(DISPID_IHTMLELEMENT2_GETELEMENTSBYTAGNAME)] IHTMLElementCollection* getElementsByTagName([in] BSTR v);
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUENUMBER), hidden] long uniqueNumber();
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUEID), hidden] BSTR uniqueID();
    [propget, id(DISPID_IHTMLDOMNODE_NODETYPE)] long nodeType();
    [propget, id(DISPID_IHTMLDOMNODE_PARENTNODE)] IHTMLDOMNode* parentNode();
    [id(DISPID_IHTMLDOMNODE_HASCHILDNODES)] VARIANT_BOOL hasChildNodes();
    [propget, id(DISPID_IHTMLDOMNODE_CHILDNODES)] IDispatch* childNodes();
    [propget, id(DISPID_IHTMLDOMNODE_ATTRIBUTES)] IDispatch* attributes();
    [id(DISPID_IHTMLDOMNODE_INSERTBEFORE)] IHTMLDOMNode* insertBefore([in] IHTMLDOMNode* newChild,[optional, in] VARIANT refChild);
    [id(DISPID_IHTMLDOMNODE_REMOVECHILD)] IHTMLDOMNode* removeChild([in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_REPLACECHILD)] IHTMLDOMNode* replaceChild([in] IHTMLDOMNode* newChild,[in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_CLONENODE)] IHTMLDOMNode* cloneNode([in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_REMOVENODE)] IHTMLDOMNode* removeNode([defaultvalue(0), in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_SWAPNODE)] IHTMLDOMNode* swapNode([in] IHTMLDOMNode* otherNode);
    [id(DISPID_IHTMLDOMNODE_REPLACENODE)] IHTMLDOMNode* replaceNode([in] IHTMLDOMNode* replacement);
    [id(DISPID_IHTMLDOMNODE_APPENDCHILD)] IHTMLDOMNode* appendChild([in] IHTMLDOMNode* newChild);
    [propget, id(DISPID_IHTMLDOMNODE_NODENAME)] BSTR nodeName();
    [propput, id(DISPID_IHTMLDOMNODE_NODEVALUE)] void nodeValue(VARIANT v);
    [propget, id(DISPID_IHTMLDOMNODE_NODEVALUE)] VARIANT nodeValue();
    [propget, id(DISPID_IHTMLDOMNODE_FIRSTCHILD)] IHTMLDOMNode* firstChild();
    [propget, id(DISPID_IHTMLDOMNODE_LASTCHILD)] IHTMLDOMNode* lastChild();
    [propget, id(DISPID_IHTMLDOMNODE_PREVIOUSSIBLING)] IHTMLDOMNode* previousSibling();
    [propget, id(DISPID_IHTMLDOMNODE_NEXTSIBLING)] IHTMLDOMNode* nextSibling();
    [propput, id(DISPID_IHTMLDATABINDING_DATAFLD)] void dataFld(BSTR v);
    [propget, id(DISPID_IHTMLDATABINDING_DATAFLD)] BSTR dataFld();
    [propput, id(DISPID_IHTMLDATABINDING_DATASRC)] void dataSrc(BSTR v);
    [propget, id(DISPID_IHTMLDATABINDING_DATASRC)] BSTR dataSrc();
    [propput, id(DISPID_IHTMLDATABINDING_DATAFORMATAS)] void dataFormatAs(BSTR v);
    [propget, id(DISPID_IHTMLDATABINDING_DATAFORMATAS)] BSTR dataFormatAs();
    [propput, id(DISPID_IHTMLLABELELEMENT_HTMLFOR), displaybind, bindable] void htmlFor(BSTR v);
    [propget, id(DISPID_IHTMLLABELELEMENT_HTMLFOR), displaybind, bindable] BSTR htmlFor();
};
[
    uuid(3050f32b-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLLabelElement
{
    [default]           dispinterface DispHTMLLabelElement;
    [source, default]   dispinterface HTMLLabelEvents;
    [source]            dispinterface HTMLLabelEvents2;
                        interface IHTMLElement;
                        interface IHTMLElement2;
                        interface IHTMLUniqueName;
                        interface IHTMLDOMNode;
                        interface IHTMLDatabinding;
                        interface IHTMLLabelElement;
};
cpp_quote("EXTERN_C const GUID CLSID_CLabelElement;")
[
    odl,
    oleautomation,
    dual,
    uuid(3050f20e-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLListElement : IDispatch
{
};
[
    hidden,
    uuid(3050f525-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTMLListElement
{
properties:
methods:
    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)] void setAttribute([in] BSTR strAttributeName,[in] VARIANT AttributeValue,[defaultvalue(1), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)] VARIANT getAttribute([in] BSTR strAttributeName,[defaultvalue(0), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)] VARIANT_BOOL removeAttribute([in] BSTR strAttributeName,[defaultvalue(1), in] LONG lFlags);
    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] void className(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] BSTR className();
    [propput, id(DISPID_IHTMLELEMENT_ID), bindable] void id(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_ID), bindable] BSTR id();
    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)] BSTR tagName();
    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)] IHTMLElement* parentElement();
    [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable] IHTMLStyle* style();
    [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] void onhelp(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] VARIANT onhelp();
    [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] void onclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] VARIANT onclick();
    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] void ondblclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] VARIANT ondblclick();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] void onkeydown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] VARIANT onkeydown();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] void onkeyup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] VARIANT onkeyup();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] void onkeypress(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] VARIANT onkeypress();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] void onmouseout(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] VARIANT onmouseout();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] void onmouseover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] VARIANT onmouseover();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] void onmousemove(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] VARIANT onmousemove();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] void onmousedown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] VARIANT onmousedown();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] void onmouseup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] VARIANT onmouseup();
    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)] IDispatch* document();
    [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] void title(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] BSTR title();
    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] void language(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] BSTR language();
    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] void onselectstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] VARIANT onselectstart();
    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)] void scrollIntoView([optional, in] VARIANT varargStart);
    [id(DISPID_IHTMLELEMENT_CONTAINS)] VARIANT_BOOL contains([in] IHTMLElement* pChild);
    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable] long sourceIndex();
    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)] VARIANT recordNumber();
    [propput, id(DISPID_IHTMLELEMENT_LANG)] void lang(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANG)] BSTR lang();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)] long offsetLeft();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)] long offsetTop();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)] long offsetWidth();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)] long offsetHeight();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)] IHTMLElement* offsetParent();
    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)] void innerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)] BSTR innerHTML();
    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)] void innerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)] BSTR innerText();
    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)] void outerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)] BSTR outerHTML();
    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)] void outerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)] BSTR outerText();
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)] void insertAdjacentHTML([in] BSTR where,[in] BSTR html);
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)] void insertAdjacentText([in] BSTR where,[in] BSTR text);
    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)] IHTMLElement* parentTextEdit();
    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)] VARIANT_BOOL isTextEdit();
    [id(DISPID_IHTMLELEMENT_CLICK)] void click();
    [propget, id(DISPID_IHTMLELEMENT_FILTERS)] IHTMLFiltersCollection* filters();
    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] void ondragstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] VARIANT ondragstart();
    [id(DISPID_IHTMLELEMENT_TOSTRING)] BSTR toString();
    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] void onbeforeupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] VARIANT onbeforeupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] void onafterupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] VARIANT onafterupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] void onerrorupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] VARIANT onerrorupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] void onrowexit(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] VARIANT onrowexit();
    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] void onrowenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] VARIANT onrowenter();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] void ondatasetchanged(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] VARIANT ondatasetchanged();
    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] void ondataavailable(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] VARIANT ondataavailable();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] void ondatasetcomplete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] VARIANT ondatasetcomplete();
    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] void onfilterchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] VARIANT onfilterchange();
    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)] IDispatch* children();
    [propget, id(DISPID_IHTMLELEMENT_ALL)] IDispatch* all();
    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)] BSTR scopeName();
    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)] void setCapture([defaultvalue(-1), in] VARIANT_BOOL containerCapture);
    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)] void releaseCapture();
    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] void onlosecapture(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] VARIANT onlosecapture();
    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)] BSTR componentFromPoint([in] long x,[in] long y);
    [id(DISPID_IHTMLELEMENT2_DOSCROLL)] void doScroll([optional, in] VARIANT component);
    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] void onscroll(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] VARIANT onscroll();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] void ondrag(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] VARIANT ondrag();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] void ondragend(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] VARIANT ondragend();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] void ondragenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] VARIANT ondragenter();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] void ondragover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] VARIANT ondragover();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] void ondragleave(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] VARIANT ondragleave();
    [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] void ondrop(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] VARIANT ondrop();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] void onbeforecut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] VARIANT onbeforecut();
    [propput, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] void oncut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] VARIANT oncut();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] void onbeforecopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] VARIANT onbeforecopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] void oncopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] VARIANT oncopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] void onbeforepaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] VARIANT onbeforepaste();
    [propput, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] void onpaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] VARIANT onpaste();
    [propget, id(DISPID_IHTMLELEMENT2_CURRENTSTYLE), nonbrowsable] IHTMLCurrentStyle* currentStyle();
    [propput, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] void onpropertychange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] VARIANT onpropertychange();
    [id(DISPID_IHTMLELEMENT2_GETCLIENTRECTS)] IHTMLRectCollection* getClientRects();
    [id(DISPID_IHTMLELEMENT2_GETBOUNDINGCLIENTRECT)] IHTMLRect* getBoundingClientRect();
    [id(DISPID_IHTMLELEMENT2_SETEXPRESSION)] void setExpression([in] BSTR propname,[in] BSTR expression,[defaultvalue(""), in] BSTR language);
    [id(DISPID_IHTMLELEMENT2_GETEXPRESSION)] VARIANT getExpression([in] BSTR propname);
    [id(DISPID_IHTMLELEMENT2_REMOVEEXPRESSION)] VARIANT_BOOL removeExpression([in] BSTR propname);
    [propput, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] void tabIndex(short v);
    [propget, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] short tabIndex();
    [id(DISPID_IHTMLELEMENT2_FOCUS)] void focus();
    [propput, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] void accessKey(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] BSTR accessKey();
    [propput, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] void onblur(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] VARIANT onblur();
    [propput, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] void onfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] VARIANT onfocus();
    [propput, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] void onresize(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] VARIANT onresize();
    [id(DISPID_IHTMLELEMENT2_BLUR)] void blur();
    [id(DISPID_IHTMLELEMENT2_ADDFILTER)] void addFilter([in] IUnknown* pUnk);
    [id(DISPID_IHTMLELEMENT2_REMOVEFILTER)] void removeFilter([in] IUnknown* pUnk);
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTHEIGHT), displaybind, bindable] long clientHeight();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTWIDTH), displaybind, bindable] long clientWidth();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTTOP), displaybind, bindable] long clientTop();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTLEFT), displaybind, bindable] long clientLeft();
    [id(DISPID_IHTMLELEMENT2_ATTACHEVENT)] VARIANT_BOOL attachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [id(DISPID_IHTMLELEMENT2_DETACHEVENT)] void detachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATE)] VARIANT readyState();
    [propput, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] void onreadystatechange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] VARIANT onreadystatechange();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] void onrowsdelete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] VARIANT onrowsdelete();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] void onrowsinserted(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] VARIANT onrowsinserted();
    [propput, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] void oncellchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] VARIANT oncellchange();
    [propput, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] void dir(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] BSTR dir();
    [id(DISPID_IHTMLELEMENT2_CREATECONTROLRANGE)] IDispatch* createControlRange();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLHEIGHT), displaybind, bindable] long scrollHeight();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLWIDTH), displaybind, bindable] long scrollWidth();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] void scrollTop(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] long scrollTop();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] void scrollLeft(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] long scrollLeft();
    [id(DISPID_IHTMLELEMENT2_CLEARATTRIBUTES)] void clearAttributes();
    [id(DISPID_IHTMLELEMENT2_MERGEATTRIBUTES)] void mergeAttributes([in] IHTMLElement* mergeThis);
    [propput, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] void oncontextmenu(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] VARIANT oncontextmenu();
    [id(DISPID_IHTMLELEMENT2_INSERTADJACENTELEMENT)] IHTMLElement* insertAdjacentElement([in] BSTR where,[in] IHTMLElement* insertedElement);
    [id(DISPID_IHTMLELEMENT2_APPLYELEMENT)] IHTMLElement* applyElement([in] IHTMLElement* apply,[in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_GETADJACENTTEXT)] BSTR getAdjacentText([in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_REPLACEADJACENTTEXT)] BSTR replaceAdjacentText([in] BSTR where,[in] BSTR newText);
    [propget, id(DISPID_IHTMLELEMENT2_CANHAVECHILDREN)] VARIANT_BOOL canHaveChildren();
    [id(DISPID_IHTMLELEMENT2_ADDBEHAVIOR)] long addBehavior([in] BSTR bstrUrl,[optional, in] VARIANT* pvarFactory);
    [id(DISPID_IHTMLELEMENT2_REMOVEBEHAVIOR)] VARIANT_BOOL removeBehavior([in] long cookie);
    [propget, id(DISPID_IHTMLELEMENT2_RUNTIMESTYLE), nonbrowsable] IHTMLStyle* runtimeStyle();
    [propget, id(DISPID_IHTMLELEMENT2_BEHAVIORURNS)] IDispatch* behaviorUrns();
    [propput, id(DISPID_IHTMLELEMENT2_TAGURN)] void tagUrn(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_TAGURN)] BSTR tagUrn();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] void onbeforeeditfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] VARIANT onbeforeeditfocus();
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATEVALUE), hidden, restricted] long readyStateValue();
    [id(DISPID_IHTMLELEMENT2_GETELEMENTSBYTAGNAME)] IHTMLElementCollection* getElementsByTagName([in] BSTR v);
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUENUMBER), hidden] long uniqueNumber();
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUEID), hidden] BSTR uniqueID();
    [propget, id(DISPID_IHTMLDOMNODE_NODETYPE)] long nodeType();
    [propget, id(DISPID_IHTMLDOMNODE_PARENTNODE)] IHTMLDOMNode* parentNode();
    [id(DISPID_IHTMLDOMNODE_HASCHILDNODES)] VARIANT_BOOL hasChildNodes();
    [propget, id(DISPID_IHTMLDOMNODE_CHILDNODES)] IDispatch* childNodes();
    [propget, id(DISPID_IHTMLDOMNODE_ATTRIBUTES)] IDispatch* attributes();
    [id(DISPID_IHTMLDOMNODE_INSERTBEFORE)] IHTMLDOMNode* insertBefore([in] IHTMLDOMNode* newChild,[optional, in] VARIANT refChild);
    [id(DISPID_IHTMLDOMNODE_REMOVECHILD)] IHTMLDOMNode* removeChild([in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_REPLACECHILD)] IHTMLDOMNode* replaceChild([in] IHTMLDOMNode* newChild,[in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_CLONENODE)] IHTMLDOMNode* cloneNode([in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_REMOVENODE)] IHTMLDOMNode* removeNode([defaultvalue(0), in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_SWAPNODE)] IHTMLDOMNode* swapNode([in] IHTMLDOMNode* otherNode);
    [id(DISPID_IHTMLDOMNODE_REPLACENODE)] IHTMLDOMNode* replaceNode([in] IHTMLDOMNode* replacement);
    [id(DISPID_IHTMLDOMNODE_APPENDCHILD)] IHTMLDOMNode* appendChild([in] IHTMLDOMNode* newChild);
    [propget, id(DISPID_IHTMLDOMNODE_NODENAME)] BSTR nodeName();
    [propput, id(DISPID_IHTMLDOMNODE_NODEVALUE)] void nodeValue(VARIANT v);
    [propget, id(DISPID_IHTMLDOMNODE_NODEVALUE)] VARIANT nodeValue();
    [propget, id(DISPID_IHTMLDOMNODE_FIRSTCHILD)] IHTMLDOMNode* firstChild();
    [propget, id(DISPID_IHTMLDOMNODE_LASTCHILD)] IHTMLDOMNode* lastChild();
    [propget, id(DISPID_IHTMLDOMNODE_PREVIOUSSIBLING)] IHTMLDOMNode* previousSibling();
    [propget, id(DISPID_IHTMLDOMNODE_NEXTSIBLING)] IHTMLDOMNode* nextSibling();
};
[
    uuid(3050f272-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLListElement
{
    [default]           dispinterface DispHTMLListElement;
    [source, default]   dispinterface HTMLElementEvents;
    [source]            dispinterface HTMLElementEvents2;
                        interface IHTMLElement;
                        interface IHTMLElement2;
                        interface IHTMLUniqueName;
                        interface IHTMLDOMNode;
                        interface IHTMLListElement;
};
cpp_quote("EXTERN_C const GUID CLSID_CListElement;")
[
    odl,
    oleautomation,
    dual,
    uuid(3050f1dd-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLUListElement : IDispatch
{
    [propput, id(DISPID_IHTMLULISTELEMENT_COMPACT), displaybind, bindable] HRESULT compact([in] VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLULISTELEMENT_COMPACT), displaybind, bindable] HRESULT compact([retval, out] VARIANT_BOOL * p);
    [propput, id(DISPID_IHTMLULISTELEMENT_TYPE), displaybind, bindable] HRESULT type([in] BSTR v);
    [propget, id(DISPID_IHTMLULISTELEMENT_TYPE), displaybind, bindable] HRESULT type([retval, out] BSTR * p);
};
[
    hidden,
    uuid(3050f538-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTMLUListElement
{
properties:
methods:
    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)] void setAttribute([in] BSTR strAttributeName,[in] VARIANT AttributeValue,[defaultvalue(1), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)] VARIANT getAttribute([in] BSTR strAttributeName,[defaultvalue(0), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)] VARIANT_BOOL removeAttribute([in] BSTR strAttributeName,[defaultvalue(1), in] LONG lFlags);
    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] void className(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] BSTR className();
    [propput, id(DISPID_IHTMLELEMENT_ID), bindable] void id(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_ID), bindable] BSTR id();
    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)] BSTR tagName();
    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)] IHTMLElement* parentElement();
    [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable] IHTMLStyle* style();
    [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] void onhelp(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] VARIANT onhelp();
    [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] void onclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] VARIANT onclick();
    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] void ondblclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] VARIANT ondblclick();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] void onkeydown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] VARIANT onkeydown();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] void onkeyup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] VARIANT onkeyup();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] void onkeypress(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] VARIANT onkeypress();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] void onmouseout(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] VARIANT onmouseout();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] void onmouseover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] VARIANT onmouseover();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] void onmousemove(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] VARIANT onmousemove();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] void onmousedown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] VARIANT onmousedown();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] void onmouseup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] VARIANT onmouseup();
    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)] IDispatch* document();
    [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] void title(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] BSTR title();
    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] void language(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] BSTR language();
    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] void onselectstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] VARIANT onselectstart();
    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)] void scrollIntoView([optional, in] VARIANT varargStart);
    [id(DISPID_IHTMLELEMENT_CONTAINS)] VARIANT_BOOL contains([in] IHTMLElement* pChild);
    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable] long sourceIndex();
    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)] VARIANT recordNumber();
    [propput, id(DISPID_IHTMLELEMENT_LANG)] void lang(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANG)] BSTR lang();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)] long offsetLeft();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)] long offsetTop();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)] long offsetWidth();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)] long offsetHeight();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)] IHTMLElement* offsetParent();
    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)] void innerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)] BSTR innerHTML();
    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)] void innerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)] BSTR innerText();
    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)] void outerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)] BSTR outerHTML();
    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)] void outerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)] BSTR outerText();
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)] void insertAdjacentHTML([in] BSTR where,[in] BSTR html);
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)] void insertAdjacentText([in] BSTR where,[in] BSTR text);
    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)] IHTMLElement* parentTextEdit();
    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)] VARIANT_BOOL isTextEdit();
    [id(DISPID_IHTMLELEMENT_CLICK)] void click();
    [propget, id(DISPID_IHTMLELEMENT_FILTERS)] IHTMLFiltersCollection* filters();
    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] void ondragstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] VARIANT ondragstart();
    [id(DISPID_IHTMLELEMENT_TOSTRING)] BSTR toString();
    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] void onbeforeupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] VARIANT onbeforeupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] void onafterupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] VARIANT onafterupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] void onerrorupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] VARIANT onerrorupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] void onrowexit(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] VARIANT onrowexit();
    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] void onrowenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] VARIANT onrowenter();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] void ondatasetchanged(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] VARIANT ondatasetchanged();
    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] void ondataavailable(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] VARIANT ondataavailable();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] void ondatasetcomplete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] VARIANT ondatasetcomplete();
    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] void onfilterchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] VARIANT onfilterchange();
    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)] IDispatch* children();
    [propget, id(DISPID_IHTMLELEMENT_ALL)] IDispatch* all();
    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)] BSTR scopeName();
    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)] void setCapture([defaultvalue(-1), in] VARIANT_BOOL containerCapture);
    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)] void releaseCapture();
    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] void onlosecapture(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] VARIANT onlosecapture();
    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)] BSTR componentFromPoint([in] long x,[in] long y);
    [id(DISPID_IHTMLELEMENT2_DOSCROLL)] void doScroll([optional, in] VARIANT component);
    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] void onscroll(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] VARIANT onscroll();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] void ondrag(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] VARIANT ondrag();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] void ondragend(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] VARIANT ondragend();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] void ondragenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] VARIANT ondragenter();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] void ondragover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] VARIANT ondragover();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] void ondragleave(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] VARIANT ondragleave();
    [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] void ondrop(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] VARIANT ondrop();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] void onbeforecut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] VARIANT onbeforecut();
    [propput, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] void oncut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] VARIANT oncut();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] void onbeforecopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] VARIANT onbeforecopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] void oncopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] VARIANT oncopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] void onbeforepaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] VARIANT onbeforepaste();
    [propput, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] void onpaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] VARIANT onpaste();
    [propget, id(DISPID_IHTMLELEMENT2_CURRENTSTYLE), nonbrowsable] IHTMLCurrentStyle* currentStyle();
    [propput, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] void onpropertychange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] VARIANT onpropertychange();
    [id(DISPID_IHTMLELEMENT2_GETCLIENTRECTS)] IHTMLRectCollection* getClientRects();
    [id(DISPID_IHTMLELEMENT2_GETBOUNDINGCLIENTRECT)] IHTMLRect* getBoundingClientRect();
    [id(DISPID_IHTMLELEMENT2_SETEXPRESSION)] void setExpression([in] BSTR propname,[in] BSTR expression,[defaultvalue(""), in] BSTR language);
    [id(DISPID_IHTMLELEMENT2_GETEXPRESSION)] VARIANT getExpression([in] BSTR propname);
    [id(DISPID_IHTMLELEMENT2_REMOVEEXPRESSION)] VARIANT_BOOL removeExpression([in] BSTR propname);
    [propput, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] void tabIndex(short v);
    [propget, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] short tabIndex();
    [id(DISPID_IHTMLELEMENT2_FOCUS)] void focus();
    [propput, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] void accessKey(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] BSTR accessKey();
    [propput, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] void onblur(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] VARIANT onblur();
    [propput, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] void onfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] VARIANT onfocus();
    [propput, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] void onresize(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] VARIANT onresize();
    [id(DISPID_IHTMLELEMENT2_BLUR)] void blur();
    [id(DISPID_IHTMLELEMENT2_ADDFILTER)] void addFilter([in] IUnknown* pUnk);
    [id(DISPID_IHTMLELEMENT2_REMOVEFILTER)] void removeFilter([in] IUnknown* pUnk);
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTHEIGHT), displaybind, bindable] long clientHeight();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTWIDTH), displaybind, bindable] long clientWidth();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTTOP), displaybind, bindable] long clientTop();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTLEFT), displaybind, bindable] long clientLeft();
    [id(DISPID_IHTMLELEMENT2_ATTACHEVENT)] VARIANT_BOOL attachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [id(DISPID_IHTMLELEMENT2_DETACHEVENT)] void detachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATE)] VARIANT readyState();
    [propput, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] void onreadystatechange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] VARIANT onreadystatechange();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] void onrowsdelete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] VARIANT onrowsdelete();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] void onrowsinserted(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] VARIANT onrowsinserted();
    [propput, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] void oncellchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] VARIANT oncellchange();
    [propput, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] void dir(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] BSTR dir();
    [id(DISPID_IHTMLELEMENT2_CREATECONTROLRANGE)] IDispatch* createControlRange();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLHEIGHT), displaybind, bindable] long scrollHeight();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLWIDTH), displaybind, bindable] long scrollWidth();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] void scrollTop(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] long scrollTop();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] void scrollLeft(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] long scrollLeft();
    [id(DISPID_IHTMLELEMENT2_CLEARATTRIBUTES)] void clearAttributes();
    [id(DISPID_IHTMLELEMENT2_MERGEATTRIBUTES)] void mergeAttributes([in] IHTMLElement* mergeThis);
    [propput, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] void oncontextmenu(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] VARIANT oncontextmenu();
    [id(DISPID_IHTMLELEMENT2_INSERTADJACENTELEMENT)] IHTMLElement* insertAdjacentElement([in] BSTR where,[in] IHTMLElement* insertedElement);
    [id(DISPID_IHTMLELEMENT2_APPLYELEMENT)] IHTMLElement* applyElement([in] IHTMLElement* apply,[in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_GETADJACENTTEXT)] BSTR getAdjacentText([in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_REPLACEADJACENTTEXT)] BSTR replaceAdjacentText([in] BSTR where,[in] BSTR newText);
    [propget, id(DISPID_IHTMLELEMENT2_CANHAVECHILDREN)] VARIANT_BOOL canHaveChildren();
    [id(DISPID_IHTMLELEMENT2_ADDBEHAVIOR)] long addBehavior([in] BSTR bstrUrl,[optional, in] VARIANT* pvarFactory);
    [id(DISPID_IHTMLELEMENT2_REMOVEBEHAVIOR)] VARIANT_BOOL removeBehavior([in] long cookie);
    [propget, id(DISPID_IHTMLELEMENT2_RUNTIMESTYLE), nonbrowsable] IHTMLStyle* runtimeStyle();
    [propget, id(DISPID_IHTMLELEMENT2_BEHAVIORURNS)] IDispatch* behaviorUrns();
    [propput, id(DISPID_IHTMLELEMENT2_TAGURN)] void tagUrn(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_TAGURN)] BSTR tagUrn();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] void onbeforeeditfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] VARIANT onbeforeeditfocus();
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATEVALUE), hidden, restricted] long readyStateValue();
    [id(DISPID_IHTMLELEMENT2_GETELEMENTSBYTAGNAME)] IHTMLElementCollection* getElementsByTagName([in] BSTR v);
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUENUMBER), hidden] long uniqueNumber();
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUEID), hidden] BSTR uniqueID();
    [propget, id(DISPID_IHTMLDOMNODE_NODETYPE)] long nodeType();
    [propget, id(DISPID_IHTMLDOMNODE_PARENTNODE)] IHTMLDOMNode* parentNode();
    [id(DISPID_IHTMLDOMNODE_HASCHILDNODES)] VARIANT_BOOL hasChildNodes();
    [propget, id(DISPID_IHTMLDOMNODE_CHILDNODES)] IDispatch* childNodes();
    [propget, id(DISPID_IHTMLDOMNODE_ATTRIBUTES)] IDispatch* attributes();
    [id(DISPID_IHTMLDOMNODE_INSERTBEFORE)] IHTMLDOMNode* insertBefore([in] IHTMLDOMNode* newChild,[optional, in] VARIANT refChild);
    [id(DISPID_IHTMLDOMNODE_REMOVECHILD)] IHTMLDOMNode* removeChild([in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_REPLACECHILD)] IHTMLDOMNode* replaceChild([in] IHTMLDOMNode* newChild,[in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_CLONENODE)] IHTMLDOMNode* cloneNode([in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_REMOVENODE)] IHTMLDOMNode* removeNode([defaultvalue(0), in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_SWAPNODE)] IHTMLDOMNode* swapNode([in] IHTMLDOMNode* otherNode);
    [id(DISPID_IHTMLDOMNODE_REPLACENODE)] IHTMLDOMNode* replaceNode([in] IHTMLDOMNode* replacement);
    [id(DISPID_IHTMLDOMNODE_APPENDCHILD)] IHTMLDOMNode* appendChild([in] IHTMLDOMNode* newChild);
    [propget, id(DISPID_IHTMLDOMNODE_NODENAME)] BSTR nodeName();
    [propput, id(DISPID_IHTMLDOMNODE_NODEVALUE)] void nodeValue(VARIANT v);
    [propget, id(DISPID_IHTMLDOMNODE_NODEVALUE)] VARIANT nodeValue();
    [propget, id(DISPID_IHTMLDOMNODE_FIRSTCHILD)] IHTMLDOMNode* firstChild();
    [propget, id(DISPID_IHTMLDOMNODE_LASTCHILD)] IHTMLDOMNode* lastChild();
    [propget, id(DISPID_IHTMLDOMNODE_PREVIOUSSIBLING)] IHTMLDOMNode* previousSibling();
    [propget, id(DISPID_IHTMLDOMNODE_NEXTSIBLING)] IHTMLDOMNode* nextSibling();
    [propput, id(DISPID_IHTMLULISTELEMENT_COMPACT), displaybind, bindable] void compact(VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLULISTELEMENT_COMPACT), displaybind, bindable] VARIANT_BOOL compact();
    [propput, id(DISPID_IHTMLULISTELEMENT_TYPE), displaybind, bindable] void type(BSTR v);
    [propget, id(DISPID_IHTMLULISTELEMENT_TYPE), displaybind, bindable] BSTR type();
};
[
    uuid(3050f269-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLUListElement
{
    [default]           dispinterface DispHTMLUListElement;
    [source, default]   dispinterface HTMLElementEvents;
    [source]            dispinterface HTMLElementEvents2;
                        interface IHTMLElement;
                        interface IHTMLElement2;
                        interface IHTMLUniqueName;
                        interface IHTMLDOMNode;
                        interface IHTMLListElement;
                        interface IHTMLUListElement;
};
cpp_quote("EXTERN_C const GUID CLSID_CUListElement;")
[
    odl,
    oleautomation,
    dual,
    uuid(3050f1de-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLOListElement : IDispatch
{
    [propput, id(DISPID_IHTMLOLISTELEMENT_COMPACT), displaybind, bindable] HRESULT compact([in] VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLOLISTELEMENT_COMPACT), displaybind, bindable] HRESULT compact([retval, out] VARIANT_BOOL * p);
    [propput, id(DISPID_IHTMLOLISTELEMENT_START), displaybind, bindable] HRESULT start([in] long v);
    [propget, id(DISPID_IHTMLOLISTELEMENT_START), displaybind, bindable] HRESULT start([retval, out] long * p);
    [propput, id(DISPID_IHTMLOLISTELEMENT_TYPE), displaybind, bindable] HRESULT type([in] BSTR v);
    [propget, id(DISPID_IHTMLOLISTELEMENT_TYPE), displaybind, bindable] HRESULT type([retval, out] BSTR * p);
};
[
    hidden,
    uuid(3050f52a-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTMLOListElement
{
properties:
methods:
    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)] void setAttribute([in] BSTR strAttributeName,[in] VARIANT AttributeValue,[defaultvalue(1), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)] VARIANT getAttribute([in] BSTR strAttributeName,[defaultvalue(0), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)] VARIANT_BOOL removeAttribute([in] BSTR strAttributeName,[defaultvalue(1), in] LONG lFlags);
    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] void className(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] BSTR className();
    [propput, id(DISPID_IHTMLELEMENT_ID), bindable] void id(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_ID), bindable] BSTR id();
    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)] BSTR tagName();
    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)] IHTMLElement* parentElement();
    [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable] IHTMLStyle* style();
    [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] void onhelp(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] VARIANT onhelp();
    [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] void onclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] VARIANT onclick();
    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] void ondblclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] VARIANT ondblclick();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] void onkeydown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] VARIANT onkeydown();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] void onkeyup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] VARIANT onkeyup();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] void onkeypress(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] VARIANT onkeypress();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] void onmouseout(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] VARIANT onmouseout();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] void onmouseover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] VARIANT onmouseover();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] void onmousemove(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] VARIANT onmousemove();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] void onmousedown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] VARIANT onmousedown();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] void onmouseup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] VARIANT onmouseup();
    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)] IDispatch* document();
    [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] void title(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] BSTR title();
    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] void language(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] BSTR language();
    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] void onselectstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] VARIANT onselectstart();
    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)] void scrollIntoView([optional, in] VARIANT varargStart);
    [id(DISPID_IHTMLELEMENT_CONTAINS)] VARIANT_BOOL contains([in] IHTMLElement* pChild);
    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable] long sourceIndex();
    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)] VARIANT recordNumber();
    [propput, id(DISPID_IHTMLELEMENT_LANG)] void lang(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANG)] BSTR lang();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)] long offsetLeft();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)] long offsetTop();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)] long offsetWidth();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)] long offsetHeight();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)] IHTMLElement* offsetParent();
    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)] void innerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)] BSTR innerHTML();
    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)] void innerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)] BSTR innerText();
    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)] void outerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)] BSTR outerHTML();
    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)] void outerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)] BSTR outerText();
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)] void insertAdjacentHTML([in] BSTR where,[in] BSTR html);
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)] void insertAdjacentText([in] BSTR where,[in] BSTR text);
    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)] IHTMLElement* parentTextEdit();
    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)] VARIANT_BOOL isTextEdit();
    [id(DISPID_IHTMLELEMENT_CLICK)] void click();
    [propget, id(DISPID_IHTMLELEMENT_FILTERS)] IHTMLFiltersCollection* filters();
    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] void ondragstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] VARIANT ondragstart();
    [id(DISPID_IHTMLELEMENT_TOSTRING)] BSTR toString();
    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] void onbeforeupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] VARIANT onbeforeupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] void onafterupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] VARIANT onafterupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] void onerrorupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] VARIANT onerrorupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] void onrowexit(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] VARIANT onrowexit();
    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] void onrowenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] VARIANT onrowenter();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] void ondatasetchanged(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] VARIANT ondatasetchanged();
    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] void ondataavailable(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] VARIANT ondataavailable();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] void ondatasetcomplete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] VARIANT ondatasetcomplete();
    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] void onfilterchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] VARIANT onfilterchange();
    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)] IDispatch* children();
    [propget, id(DISPID_IHTMLELEMENT_ALL)] IDispatch* all();
    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)] BSTR scopeName();
    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)] void setCapture([defaultvalue(-1), in] VARIANT_BOOL containerCapture);
    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)] void releaseCapture();
    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] void onlosecapture(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] VARIANT onlosecapture();
    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)] BSTR componentFromPoint([in] long x,[in] long y);
    [id(DISPID_IHTMLELEMENT2_DOSCROLL)] void doScroll([optional, in] VARIANT component);
    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] void onscroll(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] VARIANT onscroll();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] void ondrag(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] VARIANT ondrag();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] void ondragend(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] VARIANT ondragend();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] void ondragenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] VARIANT ondragenter();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] void ondragover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] VARIANT ondragover();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] void ondragleave(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] VARIANT ondragleave();
    [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] void ondrop(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] VARIANT ondrop();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] void onbeforecut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] VARIANT onbeforecut();
    [propput, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] void oncut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] VARIANT oncut();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] void onbeforecopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] VARIANT onbeforecopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] void oncopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] VARIANT oncopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] void onbeforepaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] VARIANT onbeforepaste();
    [propput, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] void onpaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] VARIANT onpaste();
    [propget, id(DISPID_IHTMLELEMENT2_CURRENTSTYLE), nonbrowsable] IHTMLCurrentStyle* currentStyle();
    [propput, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] void onpropertychange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] VARIANT onpropertychange();
    [id(DISPID_IHTMLELEMENT2_GETCLIENTRECTS)] IHTMLRectCollection* getClientRects();
    [id(DISPID_IHTMLELEMENT2_GETBOUNDINGCLIENTRECT)] IHTMLRect* getBoundingClientRect();
    [id(DISPID_IHTMLELEMENT2_SETEXPRESSION)] void setExpression([in] BSTR propname,[in] BSTR expression,[defaultvalue(""), in] BSTR language);
    [id(DISPID_IHTMLELEMENT2_GETEXPRESSION)] VARIANT getExpression([in] BSTR propname);
    [id(DISPID_IHTMLELEMENT2_REMOVEEXPRESSION)] VARIANT_BOOL removeExpression([in] BSTR propname);
    [propput, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] void tabIndex(short v);
    [propget, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] short tabIndex();
    [id(DISPID_IHTMLELEMENT2_FOCUS)] void focus();
    [propput, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] void accessKey(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] BSTR accessKey();
    [propput, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] void onblur(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] VARIANT onblur();
    [propput, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] void onfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] VARIANT onfocus();
    [propput, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] void onresize(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] VARIANT onresize();
    [id(DISPID_IHTMLELEMENT2_BLUR)] void blur();
    [id(DISPID_IHTMLELEMENT2_ADDFILTER)] void addFilter([in] IUnknown* pUnk);
    [id(DISPID_IHTMLELEMENT2_REMOVEFILTER)] void removeFilter([in] IUnknown* pUnk);
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTHEIGHT), displaybind, bindable] long clientHeight();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTWIDTH), displaybind, bindable] long clientWidth();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTTOP), displaybind, bindable] long clientTop();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTLEFT), displaybind, bindable] long clientLeft();
    [id(DISPID_IHTMLELEMENT2_ATTACHEVENT)] VARIANT_BOOL attachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [id(DISPID_IHTMLELEMENT2_DETACHEVENT)] void detachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATE)] VARIANT readyState();
    [propput, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] void onreadystatechange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] VARIANT onreadystatechange();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] void onrowsdelete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] VARIANT onrowsdelete();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] void onrowsinserted(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] VARIANT onrowsinserted();
    [propput, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] void oncellchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] VARIANT oncellchange();
    [propput, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] void dir(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] BSTR dir();
    [id(DISPID_IHTMLELEMENT2_CREATECONTROLRANGE)] IDispatch* createControlRange();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLHEIGHT), displaybind, bindable] long scrollHeight();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLWIDTH), displaybind, bindable] long scrollWidth();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] void scrollTop(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] long scrollTop();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] void scrollLeft(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] long scrollLeft();
    [id(DISPID_IHTMLELEMENT2_CLEARATTRIBUTES)] void clearAttributes();
    [id(DISPID_IHTMLELEMENT2_MERGEATTRIBUTES)] void mergeAttributes([in] IHTMLElement* mergeThis);
    [propput, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] void oncontextmenu(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] VARIANT oncontextmenu();
    [id(DISPID_IHTMLELEMENT2_INSERTADJACENTELEMENT)] IHTMLElement* insertAdjacentElement([in] BSTR where,[in] IHTMLElement* insertedElement);
    [id(DISPID_IHTMLELEMENT2_APPLYELEMENT)] IHTMLElement* applyElement([in] IHTMLElement* apply,[in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_GETADJACENTTEXT)] BSTR getAdjacentText([in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_REPLACEADJACENTTEXT)] BSTR replaceAdjacentText([in] BSTR where,[in] BSTR newText);
    [propget, id(DISPID_IHTMLELEMENT2_CANHAVECHILDREN)] VARIANT_BOOL canHaveChildren();
    [id(DISPID_IHTMLELEMENT2_ADDBEHAVIOR)] long addBehavior([in] BSTR bstrUrl,[optional, in] VARIANT* pvarFactory);
    [id(DISPID_IHTMLELEMENT2_REMOVEBEHAVIOR)] VARIANT_BOOL removeBehavior([in] long cookie);
    [propget, id(DISPID_IHTMLELEMENT2_RUNTIMESTYLE), nonbrowsable] IHTMLStyle* runtimeStyle();
    [propget, id(DISPID_IHTMLELEMENT2_BEHAVIORURNS)] IDispatch* behaviorUrns();
    [propput, id(DISPID_IHTMLELEMENT2_TAGURN)] void tagUrn(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_TAGURN)] BSTR tagUrn();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] void onbeforeeditfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] VARIANT onbeforeeditfocus();
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATEVALUE), hidden, restricted] long readyStateValue();
    [id(DISPID_IHTMLELEMENT2_GETELEMENTSBYTAGNAME)] IHTMLElementCollection* getElementsByTagName([in] BSTR v);
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUENUMBER), hidden] long uniqueNumber();
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUEID), hidden] BSTR uniqueID();
    [propget, id(DISPID_IHTMLDOMNODE_NODETYPE)] long nodeType();
    [propget, id(DISPID_IHTMLDOMNODE_PARENTNODE)] IHTMLDOMNode* parentNode();
    [id(DISPID_IHTMLDOMNODE_HASCHILDNODES)] VARIANT_BOOL hasChildNodes();
    [propget, id(DISPID_IHTMLDOMNODE_CHILDNODES)] IDispatch* childNodes();
    [propget, id(DISPID_IHTMLDOMNODE_ATTRIBUTES)] IDispatch* attributes();
    [id(DISPID_IHTMLDOMNODE_INSERTBEFORE)] IHTMLDOMNode* insertBefore([in] IHTMLDOMNode* newChild,[optional, in] VARIANT refChild);
    [id(DISPID_IHTMLDOMNODE_REMOVECHILD)] IHTMLDOMNode* removeChild([in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_REPLACECHILD)] IHTMLDOMNode* replaceChild([in] IHTMLDOMNode* newChild,[in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_CLONENODE)] IHTMLDOMNode* cloneNode([in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_REMOVENODE)] IHTMLDOMNode* removeNode([defaultvalue(0), in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_SWAPNODE)] IHTMLDOMNode* swapNode([in] IHTMLDOMNode* otherNode);
    [id(DISPID_IHTMLDOMNODE_REPLACENODE)] IHTMLDOMNode* replaceNode([in] IHTMLDOMNode* replacement);
    [id(DISPID_IHTMLDOMNODE_APPENDCHILD)] IHTMLDOMNode* appendChild([in] IHTMLDOMNode* newChild);
    [propget, id(DISPID_IHTMLDOMNODE_NODENAME)] BSTR nodeName();
    [propput, id(DISPID_IHTMLDOMNODE_NODEVALUE)] void nodeValue(VARIANT v);
    [propget, id(DISPID_IHTMLDOMNODE_NODEVALUE)] VARIANT nodeValue();
    [propget, id(DISPID_IHTMLDOMNODE_FIRSTCHILD)] IHTMLDOMNode* firstChild();
    [propget, id(DISPID_IHTMLDOMNODE_LASTCHILD)] IHTMLDOMNode* lastChild();
    [propget, id(DISPID_IHTMLDOMNODE_PREVIOUSSIBLING)] IHTMLDOMNode* previousSibling();
    [propget, id(DISPID_IHTMLDOMNODE_NEXTSIBLING)] IHTMLDOMNode* nextSibling();
    [propput, id(DISPID_IHTMLOLISTELEMENT_COMPACT), displaybind, bindable] void compact(VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLOLISTELEMENT_COMPACT), displaybind, bindable] VARIANT_BOOL compact();
    [propput, id(DISPID_IHTMLOLISTELEMENT_START), displaybind, bindable] void start(long v);
    [propget, id(DISPID_IHTMLOLISTELEMENT_START), displaybind, bindable] long start();
    [propput, id(DISPID_IHTMLOLISTELEMENT_TYPE), displaybind, bindable] void type(BSTR v);
    [propget, id(DISPID_IHTMLOLISTELEMENT_TYPE), displaybind, bindable] BSTR type();
};
[
    uuid(3050f270-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLOListElement
{
    [default]           dispinterface DispHTMLOListElement;
    [source, default]   dispinterface HTMLElementEvents;
    [source]            dispinterface HTMLElementEvents2;
                        interface IHTMLElement;
                        interface IHTMLElement2;
                        interface IHTMLUniqueName;
                        interface IHTMLDOMNode;
                        interface IHTMLListElement;
                        interface IHTMLOListElement;
};
cpp_quote("EXTERN_C const GUID CLSID_COListElement;")
[
    odl,
    oleautomation,
    dual,
    uuid(3050f1e0-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLLIElement : IDispatch
{
    [propput, id(DISPID_IHTMLLIELEMENT_TYPE), displaybind, bindable] HRESULT type([in] BSTR v);
    [propget, id(DISPID_IHTMLLIELEMENT_TYPE), displaybind, bindable] HRESULT type([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLLIELEMENT_VALUE), displaybind, bindable] HRESULT value([in] long v);
    [propget, id(DISPID_IHTMLLIELEMENT_VALUE), displaybind, bindable] HRESULT value([retval, out] long * p);
};
[
    hidden,
    uuid(3050f523-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTMLLIElement
{
properties:
methods:
    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)] void setAttribute([in] BSTR strAttributeName,[in] VARIANT AttributeValue,[defaultvalue(1), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)] VARIANT getAttribute([in] BSTR strAttributeName,[defaultvalue(0), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)] VARIANT_BOOL removeAttribute([in] BSTR strAttributeName,[defaultvalue(1), in] LONG lFlags);
    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] void className(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] BSTR className();
    [propput, id(DISPID_IHTMLELEMENT_ID), bindable] void id(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_ID), bindable] BSTR id();
    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)] BSTR tagName();
    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)] IHTMLElement* parentElement();
    [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable] IHTMLStyle* style();
    [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] void onhelp(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] VARIANT onhelp();
    [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] void onclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] VARIANT onclick();
    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] void ondblclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] VARIANT ondblclick();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] void onkeydown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] VARIANT onkeydown();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] void onkeyup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] VARIANT onkeyup();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] void onkeypress(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] VARIANT onkeypress();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] void onmouseout(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] VARIANT onmouseout();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] void onmouseover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] VARIANT onmouseover();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] void onmousemove(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] VARIANT onmousemove();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] void onmousedown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] VARIANT onmousedown();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] void onmouseup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] VARIANT onmouseup();
    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)] IDispatch* document();
    [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] void title(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] BSTR title();
    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] void language(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] BSTR language();
    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] void onselectstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] VARIANT onselectstart();
    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)] void scrollIntoView([optional, in] VARIANT varargStart);
    [id(DISPID_IHTMLELEMENT_CONTAINS)] VARIANT_BOOL contains([in] IHTMLElement* pChild);
    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable] long sourceIndex();
    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)] VARIANT recordNumber();
    [propput, id(DISPID_IHTMLELEMENT_LANG)] void lang(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANG)] BSTR lang();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)] long offsetLeft();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)] long offsetTop();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)] long offsetWidth();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)] long offsetHeight();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)] IHTMLElement* offsetParent();
    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)] void innerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)] BSTR innerHTML();
    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)] void innerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)] BSTR innerText();
    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)] void outerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)] BSTR outerHTML();
    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)] void outerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)] BSTR outerText();
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)] void insertAdjacentHTML([in] BSTR where,[in] BSTR html);
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)] void insertAdjacentText([in] BSTR where,[in] BSTR text);
    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)] IHTMLElement* parentTextEdit();
    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)] VARIANT_BOOL isTextEdit();
    [id(DISPID_IHTMLELEMENT_CLICK)] void click();
    [propget, id(DISPID_IHTMLELEMENT_FILTERS)] IHTMLFiltersCollection* filters();
    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] void ondragstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] VARIANT ondragstart();
    [id(DISPID_IHTMLELEMENT_TOSTRING)] BSTR toString();
    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] void onbeforeupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] VARIANT onbeforeupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] void onafterupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] VARIANT onafterupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] void onerrorupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] VARIANT onerrorupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] void onrowexit(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] VARIANT onrowexit();
    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] void onrowenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] VARIANT onrowenter();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] void ondatasetchanged(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] VARIANT ondatasetchanged();
    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] void ondataavailable(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] VARIANT ondataavailable();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] void ondatasetcomplete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] VARIANT ondatasetcomplete();
    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] void onfilterchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] VARIANT onfilterchange();
    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)] IDispatch* children();
    [propget, id(DISPID_IHTMLELEMENT_ALL)] IDispatch* all();
    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)] BSTR scopeName();
    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)] void setCapture([defaultvalue(-1), in] VARIANT_BOOL containerCapture);
    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)] void releaseCapture();
    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] void onlosecapture(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] VARIANT onlosecapture();
    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)] BSTR componentFromPoint([in] long x,[in] long y);
    [id(DISPID_IHTMLELEMENT2_DOSCROLL)] void doScroll([optional, in] VARIANT component);
    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] void onscroll(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] VARIANT onscroll();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] void ondrag(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] VARIANT ondrag();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] void ondragend(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] VARIANT ondragend();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] void ondragenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] VARIANT ondragenter();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] void ondragover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] VARIANT ondragover();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] void ondragleave(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] VARIANT ondragleave();
    [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] void ondrop(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] VARIANT ondrop();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] void onbeforecut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] VARIANT onbeforecut();
    [propput, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] void oncut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] VARIANT oncut();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] void onbeforecopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] VARIANT onbeforecopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] void oncopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] VARIANT oncopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] void onbeforepaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] VARIANT onbeforepaste();
    [propput, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] void onpaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] VARIANT onpaste();
    [propget, id(DISPID_IHTMLELEMENT2_CURRENTSTYLE), nonbrowsable] IHTMLCurrentStyle* currentStyle();
    [propput, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] void onpropertychange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] VARIANT onpropertychange();
    [id(DISPID_IHTMLELEMENT2_GETCLIENTRECTS)] IHTMLRectCollection* getClientRects();
    [id(DISPID_IHTMLELEMENT2_GETBOUNDINGCLIENTRECT)] IHTMLRect* getBoundingClientRect();
    [id(DISPID_IHTMLELEMENT2_SETEXPRESSION)] void setExpression([in] BSTR propname,[in] BSTR expression,[defaultvalue(""), in] BSTR language);
    [id(DISPID_IHTMLELEMENT2_GETEXPRESSION)] VARIANT getExpression([in] BSTR propname);
    [id(DISPID_IHTMLELEMENT2_REMOVEEXPRESSION)] VARIANT_BOOL removeExpression([in] BSTR propname);
    [propput, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] void tabIndex(short v);
    [propget, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] short tabIndex();
    [id(DISPID_IHTMLELEMENT2_FOCUS)] void focus();
    [propput, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] void accessKey(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] BSTR accessKey();
    [propput, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] void onblur(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] VARIANT onblur();
    [propput, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] void onfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] VARIANT onfocus();
    [propput, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] void onresize(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] VARIANT onresize();
    [id(DISPID_IHTMLELEMENT2_BLUR)] void blur();
    [id(DISPID_IHTMLELEMENT2_ADDFILTER)] void addFilter([in] IUnknown* pUnk);
    [id(DISPID_IHTMLELEMENT2_REMOVEFILTER)] void removeFilter([in] IUnknown* pUnk);
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTHEIGHT), displaybind, bindable] long clientHeight();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTWIDTH), displaybind, bindable] long clientWidth();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTTOP), displaybind, bindable] long clientTop();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTLEFT), displaybind, bindable] long clientLeft();
    [id(DISPID_IHTMLELEMENT2_ATTACHEVENT)] VARIANT_BOOL attachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [id(DISPID_IHTMLELEMENT2_DETACHEVENT)] void detachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATE)] VARIANT readyState();
    [propput, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] void onreadystatechange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] VARIANT onreadystatechange();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] void onrowsdelete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] VARIANT onrowsdelete();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] void onrowsinserted(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] VARIANT onrowsinserted();
    [propput, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] void oncellchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] VARIANT oncellchange();
    [propput, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] void dir(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] BSTR dir();
    [id(DISPID_IHTMLELEMENT2_CREATECONTROLRANGE)] IDispatch* createControlRange();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLHEIGHT), displaybind, bindable] long scrollHeight();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLWIDTH), displaybind, bindable] long scrollWidth();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] void scrollTop(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] long scrollTop();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] void scrollLeft(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] long scrollLeft();
    [id(DISPID_IHTMLELEMENT2_CLEARATTRIBUTES)] void clearAttributes();
    [id(DISPID_IHTMLELEMENT2_MERGEATTRIBUTES)] void mergeAttributes([in] IHTMLElement* mergeThis);
    [propput, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] void oncontextmenu(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] VARIANT oncontextmenu();
    [id(DISPID_IHTMLELEMENT2_INSERTADJACENTELEMENT)] IHTMLElement* insertAdjacentElement([in] BSTR where,[in] IHTMLElement* insertedElement);
    [id(DISPID_IHTMLELEMENT2_APPLYELEMENT)] IHTMLElement* applyElement([in] IHTMLElement* apply,[in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_GETADJACENTTEXT)] BSTR getAdjacentText([in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_REPLACEADJACENTTEXT)] BSTR replaceAdjacentText([in] BSTR where,[in] BSTR newText);
    [propget, id(DISPID_IHTMLELEMENT2_CANHAVECHILDREN)] VARIANT_BOOL canHaveChildren();
    [id(DISPID_IHTMLELEMENT2_ADDBEHAVIOR)] long addBehavior([in] BSTR bstrUrl,[optional, in] VARIANT* pvarFactory);
    [id(DISPID_IHTMLELEMENT2_REMOVEBEHAVIOR)] VARIANT_BOOL removeBehavior([in] long cookie);
    [propget, id(DISPID_IHTMLELEMENT2_RUNTIMESTYLE), nonbrowsable] IHTMLStyle* runtimeStyle();
    [propget, id(DISPID_IHTMLELEMENT2_BEHAVIORURNS)] IDispatch* behaviorUrns();
    [propput, id(DISPID_IHTMLELEMENT2_TAGURN)] void tagUrn(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_TAGURN)] BSTR tagUrn();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] void onbeforeeditfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] VARIANT onbeforeeditfocus();
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATEVALUE), hidden, restricted] long readyStateValue();
    [id(DISPID_IHTMLELEMENT2_GETELEMENTSBYTAGNAME)] IHTMLElementCollection* getElementsByTagName([in] BSTR v);
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUENUMBER), hidden] long uniqueNumber();
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUEID), hidden] BSTR uniqueID();
    [propget, id(DISPID_IHTMLDOMNODE_NODETYPE)] long nodeType();
    [propget, id(DISPID_IHTMLDOMNODE_PARENTNODE)] IHTMLDOMNode* parentNode();
    [id(DISPID_IHTMLDOMNODE_HASCHILDNODES)] VARIANT_BOOL hasChildNodes();
    [propget, id(DISPID_IHTMLDOMNODE_CHILDNODES)] IDispatch* childNodes();
    [propget, id(DISPID_IHTMLDOMNODE_ATTRIBUTES)] IDispatch* attributes();
    [id(DISPID_IHTMLDOMNODE_INSERTBEFORE)] IHTMLDOMNode* insertBefore([in] IHTMLDOMNode* newChild,[optional, in] VARIANT refChild);
    [id(DISPID_IHTMLDOMNODE_REMOVECHILD)] IHTMLDOMNode* removeChild([in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_REPLACECHILD)] IHTMLDOMNode* replaceChild([in] IHTMLDOMNode* newChild,[in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_CLONENODE)] IHTMLDOMNode* cloneNode([in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_REMOVENODE)] IHTMLDOMNode* removeNode([defaultvalue(0), in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_SWAPNODE)] IHTMLDOMNode* swapNode([in] IHTMLDOMNode* otherNode);
    [id(DISPID_IHTMLDOMNODE_REPLACENODE)] IHTMLDOMNode* replaceNode([in] IHTMLDOMNode* replacement);
    [id(DISPID_IHTMLDOMNODE_APPENDCHILD)] IHTMLDOMNode* appendChild([in] IHTMLDOMNode* newChild);
    [propget, id(DISPID_IHTMLDOMNODE_NODENAME)] BSTR nodeName();
    [propput, id(DISPID_IHTMLDOMNODE_NODEVALUE)] void nodeValue(VARIANT v);
    [propget, id(DISPID_IHTMLDOMNODE_NODEVALUE)] VARIANT nodeValue();
    [propget, id(DISPID_IHTMLDOMNODE_FIRSTCHILD)] IHTMLDOMNode* firstChild();
    [propget, id(DISPID_IHTMLDOMNODE_LASTCHILD)] IHTMLDOMNode* lastChild();
    [propget, id(DISPID_IHTMLDOMNODE_PREVIOUSSIBLING)] IHTMLDOMNode* previousSibling();
    [propget, id(DISPID_IHTMLDOMNODE_NEXTSIBLING)] IHTMLDOMNode* nextSibling();
    [propput, id(DISPID_IHTMLLIELEMENT_TYPE), displaybind, bindable] void type(BSTR v);
    [propget, id(DISPID_IHTMLLIELEMENT_TYPE), displaybind, bindable] BSTR type();
    [propput, id(DISPID_IHTMLLIELEMENT_VALUE), displaybind, bindable] void value(long v);
    [propget, id(DISPID_IHTMLLIELEMENT_VALUE), displaybind, bindable] long value();
};
[
    uuid(3050f273-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLLIElement
{
    [default]           dispinterface DispHTMLLIElement;
    [source, default]   dispinterface HTMLElementEvents;
    [source]            dispinterface HTMLElementEvents2;
                        interface IHTMLElement;
                        interface IHTMLElement2;
                        interface IHTMLUniqueName;
                        interface IHTMLDOMNode;
                        interface IHTMLLIElement;
};
cpp_quote("EXTERN_C const GUID CLSID_CLIElement;")
[
    odl,
    oleautomation,
    dual,
    uuid(3050f208-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLBlockElement : IDispatch
{
    [propput, id(DISPID_IHTMLBLOCKELEMENT_CLEAR), displaybind, bindable] HRESULT clear([in] BSTR v);
    [propget, id(DISPID_IHTMLBLOCKELEMENT_CLEAR), displaybind, bindable] HRESULT clear([retval, out] BSTR * p);
};
[
    hidden,
    uuid(3050f506-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTMLBlockElement
{
properties:
methods:
    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)] void setAttribute([in] BSTR strAttributeName,[in] VARIANT AttributeValue,[defaultvalue(1), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)] VARIANT getAttribute([in] BSTR strAttributeName,[defaultvalue(0), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)] VARIANT_BOOL removeAttribute([in] BSTR strAttributeName,[defaultvalue(1), in] LONG lFlags);
    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] void className(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] BSTR className();
    [propput, id(DISPID_IHTMLELEMENT_ID), bindable] void id(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_ID), bindable] BSTR id();
    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)] BSTR tagName();
    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)] IHTMLElement* parentElement();
    [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable] IHTMLStyle* style();
    [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] void onhelp(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] VARIANT onhelp();
    [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] void onclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] VARIANT onclick();
    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] void ondblclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] VARIANT ondblclick();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] void onkeydown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] VARIANT onkeydown();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] void onkeyup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] VARIANT onkeyup();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] void onkeypress(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] VARIANT onkeypress();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] void onmouseout(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] VARIANT onmouseout();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] void onmouseover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] VARIANT onmouseover();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] void onmousemove(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] VARIANT onmousemove();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] void onmousedown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] VARIANT onmousedown();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] void onmouseup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] VARIANT onmouseup();
    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)] IDispatch* document();
    [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] void title(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] BSTR title();
    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] void language(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] BSTR language();
    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] void onselectstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] VARIANT onselectstart();
    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)] void scrollIntoView([optional, in] VARIANT varargStart);
    [id(DISPID_IHTMLELEMENT_CONTAINS)] VARIANT_BOOL contains([in] IHTMLElement* pChild);
    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable] long sourceIndex();
    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)] VARIANT recordNumber();
    [propput, id(DISPID_IHTMLELEMENT_LANG)] void lang(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANG)] BSTR lang();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)] long offsetLeft();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)] long offsetTop();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)] long offsetWidth();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)] long offsetHeight();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)] IHTMLElement* offsetParent();
    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)] void innerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)] BSTR innerHTML();
    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)] void innerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)] BSTR innerText();
    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)] void outerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)] BSTR outerHTML();
    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)] void outerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)] BSTR outerText();
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)] void insertAdjacentHTML([in] BSTR where,[in] BSTR html);
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)] void insertAdjacentText([in] BSTR where,[in] BSTR text);
    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)] IHTMLElement* parentTextEdit();
    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)] VARIANT_BOOL isTextEdit();
    [id(DISPID_IHTMLELEMENT_CLICK)] void click();
    [propget, id(DISPID_IHTMLELEMENT_FILTERS)] IHTMLFiltersCollection* filters();
    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] void ondragstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] VARIANT ondragstart();
    [id(DISPID_IHTMLELEMENT_TOSTRING)] BSTR toString();
    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] void onbeforeupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] VARIANT onbeforeupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] void onafterupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] VARIANT onafterupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] void onerrorupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] VARIANT onerrorupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] void onrowexit(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] VARIANT onrowexit();
    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] void onrowenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] VARIANT onrowenter();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] void ondatasetchanged(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] VARIANT ondatasetchanged();
    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] void ondataavailable(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] VARIANT ondataavailable();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] void ondatasetcomplete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] VARIANT ondatasetcomplete();
    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] void onfilterchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] VARIANT onfilterchange();
    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)] IDispatch* children();
    [propget, id(DISPID_IHTMLELEMENT_ALL)] IDispatch* all();
    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)] BSTR scopeName();
    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)] void setCapture([defaultvalue(-1), in] VARIANT_BOOL containerCapture);
    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)] void releaseCapture();
    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] void onlosecapture(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] VARIANT onlosecapture();
    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)] BSTR componentFromPoint([in] long x,[in] long y);
    [id(DISPID_IHTMLELEMENT2_DOSCROLL)] void doScroll([optional, in] VARIANT component);
    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] void onscroll(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] VARIANT onscroll();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] void ondrag(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] VARIANT ondrag();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] void ondragend(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] VARIANT ondragend();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] void ondragenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] VARIANT ondragenter();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] void ondragover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] VARIANT ondragover();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] void ondragleave(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] VARIANT ondragleave();
    [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] void ondrop(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] VARIANT ondrop();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] void onbeforecut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] VARIANT onbeforecut();
    [propput, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] void oncut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] VARIANT oncut();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] void onbeforecopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] VARIANT onbeforecopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] void oncopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] VARIANT oncopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] void onbeforepaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] VARIANT onbeforepaste();
    [propput, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] void onpaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] VARIANT onpaste();
    [propget, id(DISPID_IHTMLELEMENT2_CURRENTSTYLE), nonbrowsable] IHTMLCurrentStyle* currentStyle();
    [propput, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] void onpropertychange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] VARIANT onpropertychange();
    [id(DISPID_IHTMLELEMENT2_GETCLIENTRECTS)] IHTMLRectCollection* getClientRects();
    [id(DISPID_IHTMLELEMENT2_GETBOUNDINGCLIENTRECT)] IHTMLRect* getBoundingClientRect();
    [id(DISPID_IHTMLELEMENT2_SETEXPRESSION)] void setExpression([in] BSTR propname,[in] BSTR expression,[defaultvalue(""), in] BSTR language);
    [id(DISPID_IHTMLELEMENT2_GETEXPRESSION)] VARIANT getExpression([in] BSTR propname);
    [id(DISPID_IHTMLELEMENT2_REMOVEEXPRESSION)] VARIANT_BOOL removeExpression([in] BSTR propname);
    [propput, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] void tabIndex(short v);
    [propget, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] short tabIndex();
    [id(DISPID_IHTMLELEMENT2_FOCUS)] void focus();
    [propput, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] void accessKey(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] BSTR accessKey();
    [propput, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] void onblur(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] VARIANT onblur();
    [propput, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] void onfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] VARIANT onfocus();
    [propput, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] void onresize(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] VARIANT onresize();
    [id(DISPID_IHTMLELEMENT2_BLUR)] void blur();
    [id(DISPID_IHTMLELEMENT2_ADDFILTER)] void addFilter([in] IUnknown* pUnk);
    [id(DISPID_IHTMLELEMENT2_REMOVEFILTER)] void removeFilter([in] IUnknown* pUnk);
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTHEIGHT), displaybind, bindable] long clientHeight();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTWIDTH), displaybind, bindable] long clientWidth();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTTOP), displaybind, bindable] long clientTop();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTLEFT), displaybind, bindable] long clientLeft();
    [id(DISPID_IHTMLELEMENT2_ATTACHEVENT)] VARIANT_BOOL attachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [id(DISPID_IHTMLELEMENT2_DETACHEVENT)] void detachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATE)] VARIANT readyState();
    [propput, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] void onreadystatechange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] VARIANT onreadystatechange();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] void onrowsdelete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] VARIANT onrowsdelete();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] void onrowsinserted(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] VARIANT onrowsinserted();
    [propput, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] void oncellchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] VARIANT oncellchange();
    [propput, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] void dir(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] BSTR dir();
    [id(DISPID_IHTMLELEMENT2_CREATECONTROLRANGE)] IDispatch* createControlRange();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLHEIGHT), displaybind, bindable] long scrollHeight();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLWIDTH), displaybind, bindable] long scrollWidth();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] void scrollTop(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] long scrollTop();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] void scrollLeft(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] long scrollLeft();
    [id(DISPID_IHTMLELEMENT2_CLEARATTRIBUTES)] void clearAttributes();
    [id(DISPID_IHTMLELEMENT2_MERGEATTRIBUTES)] void mergeAttributes([in] IHTMLElement* mergeThis);
    [propput, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] void oncontextmenu(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] VARIANT oncontextmenu();
    [id(DISPID_IHTMLELEMENT2_INSERTADJACENTELEMENT)] IHTMLElement* insertAdjacentElement([in] BSTR where,[in] IHTMLElement* insertedElement);
    [id(DISPID_IHTMLELEMENT2_APPLYELEMENT)] IHTMLElement* applyElement([in] IHTMLElement* apply,[in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_GETADJACENTTEXT)] BSTR getAdjacentText([in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_REPLACEADJACENTTEXT)] BSTR replaceAdjacentText([in] BSTR where,[in] BSTR newText);
    [propget, id(DISPID_IHTMLELEMENT2_CANHAVECHILDREN)] VARIANT_BOOL canHaveChildren();
    [id(DISPID_IHTMLELEMENT2_ADDBEHAVIOR)] long addBehavior([in] BSTR bstrUrl,[optional, in] VARIANT* pvarFactory);
    [id(DISPID_IHTMLELEMENT2_REMOVEBEHAVIOR)] VARIANT_BOOL removeBehavior([in] long cookie);
    [propget, id(DISPID_IHTMLELEMENT2_RUNTIMESTYLE), nonbrowsable] IHTMLStyle* runtimeStyle();
    [propget, id(DISPID_IHTMLELEMENT2_BEHAVIORURNS)] IDispatch* behaviorUrns();
    [propput, id(DISPID_IHTMLELEMENT2_TAGURN)] void tagUrn(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_TAGURN)] BSTR tagUrn();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] void onbeforeeditfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] VARIANT onbeforeeditfocus();
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATEVALUE), hidden, restricted] long readyStateValue();
    [id(DISPID_IHTMLELEMENT2_GETELEMENTSBYTAGNAME)] IHTMLElementCollection* getElementsByTagName([in] BSTR v);
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUENUMBER), hidden] long uniqueNumber();
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUEID), hidden] BSTR uniqueID();
    [propget, id(DISPID_IHTMLDOMNODE_NODETYPE)] long nodeType();
    [propget, id(DISPID_IHTMLDOMNODE_PARENTNODE)] IHTMLDOMNode* parentNode();
    [id(DISPID_IHTMLDOMNODE_HASCHILDNODES)] VARIANT_BOOL hasChildNodes();
    [propget, id(DISPID_IHTMLDOMNODE_CHILDNODES)] IDispatch* childNodes();
    [propget, id(DISPID_IHTMLDOMNODE_ATTRIBUTES)] IDispatch* attributes();
    [id(DISPID_IHTMLDOMNODE_INSERTBEFORE)] IHTMLDOMNode* insertBefore([in] IHTMLDOMNode* newChild,[optional, in] VARIANT refChild);
    [id(DISPID_IHTMLDOMNODE_REMOVECHILD)] IHTMLDOMNode* removeChild([in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_REPLACECHILD)] IHTMLDOMNode* replaceChild([in] IHTMLDOMNode* newChild,[in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_CLONENODE)] IHTMLDOMNode* cloneNode([in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_REMOVENODE)] IHTMLDOMNode* removeNode([defaultvalue(0), in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_SWAPNODE)] IHTMLDOMNode* swapNode([in] IHTMLDOMNode* otherNode);
    [id(DISPID_IHTMLDOMNODE_REPLACENODE)] IHTMLDOMNode* replaceNode([in] IHTMLDOMNode* replacement);
    [id(DISPID_IHTMLDOMNODE_APPENDCHILD)] IHTMLDOMNode* appendChild([in] IHTMLDOMNode* newChild);
    [propget, id(DISPID_IHTMLDOMNODE_NODENAME)] BSTR nodeName();
    [propput, id(DISPID_IHTMLDOMNODE_NODEVALUE)] void nodeValue(VARIANT v);
    [propget, id(DISPID_IHTMLDOMNODE_NODEVALUE)] VARIANT nodeValue();
    [propget, id(DISPID_IHTMLDOMNODE_FIRSTCHILD)] IHTMLDOMNode* firstChild();
    [propget, id(DISPID_IHTMLDOMNODE_LASTCHILD)] IHTMLDOMNode* lastChild();
    [propget, id(DISPID_IHTMLDOMNODE_PREVIOUSSIBLING)] IHTMLDOMNode* previousSibling();
    [propget, id(DISPID_IHTMLDOMNODE_NEXTSIBLING)] IHTMLDOMNode* nextSibling();
    [propput, id(DISPID_IHTMLBLOCKELEMENT_CLEAR), displaybind, bindable] void clear(BSTR v);
    [propget, id(DISPID_IHTMLBLOCKELEMENT_CLEAR), displaybind, bindable] BSTR clear();
};
[
    uuid(3050f281-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLBlockElement
{
    [default]           dispinterface DispHTMLBlockElement;
    [source, default]   dispinterface HTMLElementEvents;
    [source]            dispinterface HTMLElementEvents2;
                        interface IHTMLElement;
                        interface IHTMLElement2;
                        interface IHTMLUniqueName;
                        interface IHTMLDOMNode;
                        interface IHTMLBlockElement;
};
cpp_quote("EXTERN_C const GUID CLSID_CBlockElement;")
[
    odl,
    oleautomation,
    dual,
    uuid(3050f200-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLDivElement : IDispatch
{
    [propput, id(DISPID_IHTMLDIVELEMENT_ALIGN), displaybind, bindable] HRESULT align([in] BSTR v);
    [propget, id(DISPID_IHTMLDIVELEMENT_ALIGN), displaybind, bindable] HRESULT align([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLDIVELEMENT_NOWRAP), displaybind, bindable] HRESULT noWrap([in] VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLDIVELEMENT_NOWRAP), displaybind, bindable] HRESULT noWrap([retval, out] VARIANT_BOOL * p);
};
[
    hidden,
    uuid(3050f50c-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTMLDivElement
{
properties:
methods:
    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)] void setAttribute([in] BSTR strAttributeName,[in] VARIANT AttributeValue,[defaultvalue(1), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)] VARIANT getAttribute([in] BSTR strAttributeName,[defaultvalue(0), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)] VARIANT_BOOL removeAttribute([in] BSTR strAttributeName,[defaultvalue(1), in] LONG lFlags);
    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] void className(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] BSTR className();
    [propput, id(DISPID_IHTMLELEMENT_ID), bindable] void id(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_ID), bindable] BSTR id();
    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)] BSTR tagName();
    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)] IHTMLElement* parentElement();
    [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable] IHTMLStyle* style();
    [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] void onhelp(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] VARIANT onhelp();
    [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] void onclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] VARIANT onclick();
    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] void ondblclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] VARIANT ondblclick();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] void onkeydown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] VARIANT onkeydown();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] void onkeyup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] VARIANT onkeyup();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] void onkeypress(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] VARIANT onkeypress();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] void onmouseout(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] VARIANT onmouseout();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] void onmouseover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] VARIANT onmouseover();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] void onmousemove(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] VARIANT onmousemove();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] void onmousedown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] VARIANT onmousedown();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] void onmouseup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] VARIANT onmouseup();
    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)] IDispatch* document();
    [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] void title(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] BSTR title();
    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] void language(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] BSTR language();
    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] void onselectstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] VARIANT onselectstart();
    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)] void scrollIntoView([optional, in] VARIANT varargStart);
    [id(DISPID_IHTMLELEMENT_CONTAINS)] VARIANT_BOOL contains([in] IHTMLElement* pChild);
    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable] long sourceIndex();
    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)] VARIANT recordNumber();
    [propput, id(DISPID_IHTMLELEMENT_LANG)] void lang(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANG)] BSTR lang();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)] long offsetLeft();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)] long offsetTop();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)] long offsetWidth();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)] long offsetHeight();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)] IHTMLElement* offsetParent();
    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)] void innerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)] BSTR innerHTML();
    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)] void innerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)] BSTR innerText();
    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)] void outerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)] BSTR outerHTML();
    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)] void outerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)] BSTR outerText();
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)] void insertAdjacentHTML([in] BSTR where,[in] BSTR html);
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)] void insertAdjacentText([in] BSTR where,[in] BSTR text);
    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)] IHTMLElement* parentTextEdit();
    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)] VARIANT_BOOL isTextEdit();
    [id(DISPID_IHTMLELEMENT_CLICK)] void click();
    [propget, id(DISPID_IHTMLELEMENT_FILTERS)] IHTMLFiltersCollection* filters();
    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] void ondragstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] VARIANT ondragstart();
    [id(DISPID_IHTMLELEMENT_TOSTRING)] BSTR toString();
    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] void onbeforeupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] VARIANT onbeforeupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] void onafterupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] VARIANT onafterupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] void onerrorupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] VARIANT onerrorupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] void onrowexit(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] VARIANT onrowexit();
    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] void onrowenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] VARIANT onrowenter();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] void ondatasetchanged(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] VARIANT ondatasetchanged();
    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] void ondataavailable(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] VARIANT ondataavailable();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] void ondatasetcomplete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] VARIANT ondatasetcomplete();
    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] void onfilterchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] VARIANT onfilterchange();
    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)] IDispatch* children();
    [propget, id(DISPID_IHTMLELEMENT_ALL)] IDispatch* all();
    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)] BSTR scopeName();
    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)] void setCapture([defaultvalue(-1), in] VARIANT_BOOL containerCapture);
    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)] void releaseCapture();
    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] void onlosecapture(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] VARIANT onlosecapture();
    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)] BSTR componentFromPoint([in] long x,[in] long y);
    [id(DISPID_IHTMLELEMENT2_DOSCROLL)] void doScroll([optional, in] VARIANT component);
    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] void onscroll(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] VARIANT onscroll();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] void ondrag(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] VARIANT ondrag();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] void ondragend(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] VARIANT ondragend();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] void ondragenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] VARIANT ondragenter();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] void ondragover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] VARIANT ondragover();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] void ondragleave(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] VARIANT ondragleave();
    [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] void ondrop(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] VARIANT ondrop();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] void onbeforecut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] VARIANT onbeforecut();
    [propput, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] void oncut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] VARIANT oncut();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] void onbeforecopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] VARIANT onbeforecopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] void oncopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] VARIANT oncopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] void onbeforepaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] VARIANT onbeforepaste();
    [propput, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] void onpaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] VARIANT onpaste();
    [propget, id(DISPID_IHTMLELEMENT2_CURRENTSTYLE), nonbrowsable] IHTMLCurrentStyle* currentStyle();
    [propput, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] void onpropertychange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] VARIANT onpropertychange();
    [id(DISPID_IHTMLELEMENT2_GETCLIENTRECTS)] IHTMLRectCollection* getClientRects();
    [id(DISPID_IHTMLELEMENT2_GETBOUNDINGCLIENTRECT)] IHTMLRect* getBoundingClientRect();
    [id(DISPID_IHTMLELEMENT2_SETEXPRESSION)] void setExpression([in] BSTR propname,[in] BSTR expression,[defaultvalue(""), in] BSTR language);
    [id(DISPID_IHTMLELEMENT2_GETEXPRESSION)] VARIANT getExpression([in] BSTR propname);
    [id(DISPID_IHTMLELEMENT2_REMOVEEXPRESSION)] VARIANT_BOOL removeExpression([in] BSTR propname);
    [propput, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] void tabIndex(short v);
    [propget, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] short tabIndex();
    [id(DISPID_IHTMLELEMENT2_FOCUS)] void focus();
    [propput, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] void accessKey(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] BSTR accessKey();
    [propput, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] void onblur(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] VARIANT onblur();
    [propput, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] void onfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] VARIANT onfocus();
    [propput, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] void onresize(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] VARIANT onresize();
    [id(DISPID_IHTMLELEMENT2_BLUR)] void blur();
    [id(DISPID_IHTMLELEMENT2_ADDFILTER)] void addFilter([in] IUnknown* pUnk);
    [id(DISPID_IHTMLELEMENT2_REMOVEFILTER)] void removeFilter([in] IUnknown* pUnk);
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTHEIGHT), displaybind, bindable] long clientHeight();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTWIDTH), displaybind, bindable] long clientWidth();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTTOP), displaybind, bindable] long clientTop();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTLEFT), displaybind, bindable] long clientLeft();
    [id(DISPID_IHTMLELEMENT2_ATTACHEVENT)] VARIANT_BOOL attachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [id(DISPID_IHTMLELEMENT2_DETACHEVENT)] void detachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATE)] VARIANT readyState();
    [propput, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] void onreadystatechange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] VARIANT onreadystatechange();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] void onrowsdelete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] VARIANT onrowsdelete();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] void onrowsinserted(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] VARIANT onrowsinserted();
    [propput, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] void oncellchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] VARIANT oncellchange();
    [propput, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] void dir(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] BSTR dir();
    [id(DISPID_IHTMLELEMENT2_CREATECONTROLRANGE)] IDispatch* createControlRange();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLHEIGHT), displaybind, bindable] long scrollHeight();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLWIDTH), displaybind, bindable] long scrollWidth();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] void scrollTop(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] long scrollTop();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] void scrollLeft(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] long scrollLeft();
    [id(DISPID_IHTMLELEMENT2_CLEARATTRIBUTES)] void clearAttributes();
    [id(DISPID_IHTMLELEMENT2_MERGEATTRIBUTES)] void mergeAttributes([in] IHTMLElement* mergeThis);
    [propput, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] void oncontextmenu(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] VARIANT oncontextmenu();
    [id(DISPID_IHTMLELEMENT2_INSERTADJACENTELEMENT)] IHTMLElement* insertAdjacentElement([in] BSTR where,[in] IHTMLElement* insertedElement);
    [id(DISPID_IHTMLELEMENT2_APPLYELEMENT)] IHTMLElement* applyElement([in] IHTMLElement* apply,[in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_GETADJACENTTEXT)] BSTR getAdjacentText([in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_REPLACEADJACENTTEXT)] BSTR replaceAdjacentText([in] BSTR where,[in] BSTR newText);
    [propget, id(DISPID_IHTMLELEMENT2_CANHAVECHILDREN)] VARIANT_BOOL canHaveChildren();
    [id(DISPID_IHTMLELEMENT2_ADDBEHAVIOR)] long addBehavior([in] BSTR bstrUrl,[optional, in] VARIANT* pvarFactory);
    [id(DISPID_IHTMLELEMENT2_REMOVEBEHAVIOR)] VARIANT_BOOL removeBehavior([in] long cookie);
    [propget, id(DISPID_IHTMLELEMENT2_RUNTIMESTYLE), nonbrowsable] IHTMLStyle* runtimeStyle();
    [propget, id(DISPID_IHTMLELEMENT2_BEHAVIORURNS)] IDispatch* behaviorUrns();
    [propput, id(DISPID_IHTMLELEMENT2_TAGURN)] void tagUrn(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_TAGURN)] BSTR tagUrn();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] void onbeforeeditfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] VARIANT onbeforeeditfocus();
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATEVALUE), hidden, restricted] long readyStateValue();
    [id(DISPID_IHTMLELEMENT2_GETELEMENTSBYTAGNAME)] IHTMLElementCollection* getElementsByTagName([in] BSTR v);
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUENUMBER), hidden] long uniqueNumber();
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUEID), hidden] BSTR uniqueID();
    [propget, id(DISPID_IHTMLDOMNODE_NODETYPE)] long nodeType();
    [propget, id(DISPID_IHTMLDOMNODE_PARENTNODE)] IHTMLDOMNode* parentNode();
    [id(DISPID_IHTMLDOMNODE_HASCHILDNODES)] VARIANT_BOOL hasChildNodes();
    [propget, id(DISPID_IHTMLDOMNODE_CHILDNODES)] IDispatch* childNodes();
    [propget, id(DISPID_IHTMLDOMNODE_ATTRIBUTES)] IDispatch* attributes();
    [id(DISPID_IHTMLDOMNODE_INSERTBEFORE)] IHTMLDOMNode* insertBefore([in] IHTMLDOMNode* newChild,[optional, in] VARIANT refChild);
    [id(DISPID_IHTMLDOMNODE_REMOVECHILD)] IHTMLDOMNode* removeChild([in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_REPLACECHILD)] IHTMLDOMNode* replaceChild([in] IHTMLDOMNode* newChild,[in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_CLONENODE)] IHTMLDOMNode* cloneNode([in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_REMOVENODE)] IHTMLDOMNode* removeNode([defaultvalue(0), in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_SWAPNODE)] IHTMLDOMNode* swapNode([in] IHTMLDOMNode* otherNode);
    [id(DISPID_IHTMLDOMNODE_REPLACENODE)] IHTMLDOMNode* replaceNode([in] IHTMLDOMNode* replacement);
    [id(DISPID_IHTMLDOMNODE_APPENDCHILD)] IHTMLDOMNode* appendChild([in] IHTMLDOMNode* newChild);
    [propget, id(DISPID_IHTMLDOMNODE_NODENAME)] BSTR nodeName();
    [propput, id(DISPID_IHTMLDOMNODE_NODEVALUE)] void nodeValue(VARIANT v);
    [propget, id(DISPID_IHTMLDOMNODE_NODEVALUE)] VARIANT nodeValue();
    [propget, id(DISPID_IHTMLDOMNODE_FIRSTCHILD)] IHTMLDOMNode* firstChild();
    [propget, id(DISPID_IHTMLDOMNODE_LASTCHILD)] IHTMLDOMNode* lastChild();
    [propget, id(DISPID_IHTMLDOMNODE_PREVIOUSSIBLING)] IHTMLDOMNode* previousSibling();
    [propget, id(DISPID_IHTMLDOMNODE_NEXTSIBLING)] IHTMLDOMNode* nextSibling();
    [propput, id(DISPID_IHTMLDATABINDING_DATAFLD)] void dataFld(BSTR v);
    [propget, id(DISPID_IHTMLDATABINDING_DATAFLD)] BSTR dataFld();
    [propput, id(DISPID_IHTMLDATABINDING_DATASRC)] void dataSrc(BSTR v);
    [propget, id(DISPID_IHTMLDATABINDING_DATASRC)] BSTR dataSrc();
    [propput, id(DISPID_IHTMLDATABINDING_DATAFORMATAS)] void dataFormatAs(BSTR v);
    [propget, id(DISPID_IHTMLDATABINDING_DATAFORMATAS)] BSTR dataFormatAs();
    [propput, id(DISPID_IHTMLDIVELEMENT_ALIGN), displaybind, bindable] void align(BSTR v);
    [propget, id(DISPID_IHTMLDIVELEMENT_ALIGN), displaybind, bindable] BSTR align();
    [propput, id(DISPID_IHTMLDIVELEMENT_NOWRAP), displaybind, bindable] void noWrap(VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLDIVELEMENT_NOWRAP), displaybind, bindable] VARIANT_BOOL noWrap();
};
[
    uuid(3050f27e-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLDivElement
{
    [default]           dispinterface DispHTMLDivElement;
    [source, default]   dispinterface HTMLElementEvents;
    [source]            dispinterface HTMLTextContainerEvents;
    [source]            dispinterface HTMLElementEvents2;
    [source]            dispinterface HTMLTextContainerEvents2;
                        interface IHTMLElement;
                        interface IHTMLElement2;
                        interface IHTMLUniqueName;
                        interface IHTMLDOMNode;
                        interface IHTMLDatabinding;
                        interface IHTMLDivElement;
                        interface IHTMLControlElement;
                        interface IHTMLTextContainer;
};
cpp_quote("EXTERN_C const GUID CLSID_CDivElement;")
[
    odl,
    oleautomation,
    dual,
    uuid(3050f1f2-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLDDElement : IDispatch
{
    [propput, id(DISPID_IHTMLDDELEMENT_NOWRAP), displaybind, bindable] HRESULT noWrap([in] VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLDDELEMENT_NOWRAP), displaybind, bindable] HRESULT noWrap([retval, out] VARIANT_BOOL * p);
};
[
    hidden,
    uuid(3050f50b-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTMLDDElement
{
properties:
methods:
    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)] void setAttribute([in] BSTR strAttributeName,[in] VARIANT AttributeValue,[defaultvalue(1), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)] VARIANT getAttribute([in] BSTR strAttributeName,[defaultvalue(0), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)] VARIANT_BOOL removeAttribute([in] BSTR strAttributeName,[defaultvalue(1), in] LONG lFlags);
    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] void className(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] BSTR className();
    [propput, id(DISPID_IHTMLELEMENT_ID), bindable] void id(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_ID), bindable] BSTR id();
    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)] BSTR tagName();
    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)] IHTMLElement* parentElement();
    [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable] IHTMLStyle* style();
    [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] void onhelp(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] VARIANT onhelp();
    [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] void onclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] VARIANT onclick();
    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] void ondblclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] VARIANT ondblclick();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] void onkeydown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] VARIANT onkeydown();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] void onkeyup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] VARIANT onkeyup();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] void onkeypress(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] VARIANT onkeypress();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] void onmouseout(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] VARIANT onmouseout();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] void onmouseover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] VARIANT onmouseover();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] void onmousemove(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] VARIANT onmousemove();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] void onmousedown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] VARIANT onmousedown();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] void onmouseup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] VARIANT onmouseup();
    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)] IDispatch* document();
    [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] void title(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] BSTR title();
    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] void language(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] BSTR language();
    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] void onselectstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] VARIANT onselectstart();
    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)] void scrollIntoView([optional, in] VARIANT varargStart);
    [id(DISPID_IHTMLELEMENT_CONTAINS)] VARIANT_BOOL contains([in] IHTMLElement* pChild);
    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable] long sourceIndex();
    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)] VARIANT recordNumber();
    [propput, id(DISPID_IHTMLELEMENT_LANG)] void lang(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANG)] BSTR lang();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)] long offsetLeft();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)] long offsetTop();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)] long offsetWidth();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)] long offsetHeight();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)] IHTMLElement* offsetParent();
    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)] void innerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)] BSTR innerHTML();
    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)] void innerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)] BSTR innerText();
    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)] void outerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)] BSTR outerHTML();
    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)] void outerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)] BSTR outerText();
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)] void insertAdjacentHTML([in] BSTR where,[in] BSTR html);
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)] void insertAdjacentText([in] BSTR where,[in] BSTR text);
    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)] IHTMLElement* parentTextEdit();
    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)] VARIANT_BOOL isTextEdit();
    [id(DISPID_IHTMLELEMENT_CLICK)] void click();
    [propget, id(DISPID_IHTMLELEMENT_FILTERS)] IHTMLFiltersCollection* filters();
    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] void ondragstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] VARIANT ondragstart();
    [id(DISPID_IHTMLELEMENT_TOSTRING)] BSTR toString();
    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] void onbeforeupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] VARIANT onbeforeupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] void onafterupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] VARIANT onafterupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] void onerrorupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] VARIANT onerrorupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] void onrowexit(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] VARIANT onrowexit();
    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] void onrowenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] VARIANT onrowenter();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] void ondatasetchanged(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] VARIANT ondatasetchanged();
    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] void ondataavailable(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] VARIANT ondataavailable();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] void ondatasetcomplete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] VARIANT ondatasetcomplete();
    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] void onfilterchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] VARIANT onfilterchange();
    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)] IDispatch* children();
    [propget, id(DISPID_IHTMLELEMENT_ALL)] IDispatch* all();
    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)] BSTR scopeName();
    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)] void setCapture([defaultvalue(-1), in] VARIANT_BOOL containerCapture);
    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)] void releaseCapture();
    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] void onlosecapture(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] VARIANT onlosecapture();
    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)] BSTR componentFromPoint([in] long x,[in] long y);
    [id(DISPID_IHTMLELEMENT2_DOSCROLL)] void doScroll([optional, in] VARIANT component);
    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] void onscroll(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] VARIANT onscroll();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] void ondrag(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] VARIANT ondrag();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] void ondragend(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] VARIANT ondragend();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] void ondragenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] VARIANT ondragenter();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] void ondragover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] VARIANT ondragover();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] void ondragleave(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] VARIANT ondragleave();
    [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] void ondrop(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] VARIANT ondrop();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] void onbeforecut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] VARIANT onbeforecut();
    [propput, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] void oncut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] VARIANT oncut();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] void onbeforecopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] VARIANT onbeforecopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] void oncopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] VARIANT oncopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] void onbeforepaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] VARIANT onbeforepaste();
    [propput, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] void onpaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] VARIANT onpaste();
    [propget, id(DISPID_IHTMLELEMENT2_CURRENTSTYLE), nonbrowsable] IHTMLCurrentStyle* currentStyle();
    [propput, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] void onpropertychange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] VARIANT onpropertychange();
    [id(DISPID_IHTMLELEMENT2_GETCLIENTRECTS)] IHTMLRectCollection* getClientRects();
    [id(DISPID_IHTMLELEMENT2_GETBOUNDINGCLIENTRECT)] IHTMLRect* getBoundingClientRect();
    [id(DISPID_IHTMLELEMENT2_SETEXPRESSION)] void setExpression([in] BSTR propname,[in] BSTR expression,[defaultvalue(""), in] BSTR language);
    [id(DISPID_IHTMLELEMENT2_GETEXPRESSION)] VARIANT getExpression([in] BSTR propname);
    [id(DISPID_IHTMLELEMENT2_REMOVEEXPRESSION)] VARIANT_BOOL removeExpression([in] BSTR propname);
    [propput, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] void tabIndex(short v);
    [propget, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] short tabIndex();
    [id(DISPID_IHTMLELEMENT2_FOCUS)] void focus();
    [propput, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] void accessKey(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] BSTR accessKey();
    [propput, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] void onblur(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] VARIANT onblur();
    [propput, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] void onfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] VARIANT onfocus();
    [propput, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] void onresize(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] VARIANT onresize();
    [id(DISPID_IHTMLELEMENT2_BLUR)] void blur();
    [id(DISPID_IHTMLELEMENT2_ADDFILTER)] void addFilter([in] IUnknown* pUnk);
    [id(DISPID_IHTMLELEMENT2_REMOVEFILTER)] void removeFilter([in] IUnknown* pUnk);
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTHEIGHT), displaybind, bindable] long clientHeight();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTWIDTH), displaybind, bindable] long clientWidth();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTTOP), displaybind, bindable] long clientTop();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTLEFT), displaybind, bindable] long clientLeft();
    [id(DISPID_IHTMLELEMENT2_ATTACHEVENT)] VARIANT_BOOL attachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [id(DISPID_IHTMLELEMENT2_DETACHEVENT)] void detachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATE)] VARIANT readyState();
    [propput, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] void onreadystatechange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] VARIANT onreadystatechange();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] void onrowsdelete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] VARIANT onrowsdelete();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] void onrowsinserted(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] VARIANT onrowsinserted();
    [propput, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] void oncellchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] VARIANT oncellchange();
    [propput, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] void dir(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] BSTR dir();
    [id(DISPID_IHTMLELEMENT2_CREATECONTROLRANGE)] IDispatch* createControlRange();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLHEIGHT), displaybind, bindable] long scrollHeight();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLWIDTH), displaybind, bindable] long scrollWidth();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] void scrollTop(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] long scrollTop();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] void scrollLeft(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] long scrollLeft();
    [id(DISPID_IHTMLELEMENT2_CLEARATTRIBUTES)] void clearAttributes();
    [id(DISPID_IHTMLELEMENT2_MERGEATTRIBUTES)] void mergeAttributes([in] IHTMLElement* mergeThis);
    [propput, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] void oncontextmenu(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] VARIANT oncontextmenu();
    [id(DISPID_IHTMLELEMENT2_INSERTADJACENTELEMENT)] IHTMLElement* insertAdjacentElement([in] BSTR where,[in] IHTMLElement* insertedElement);
    [id(DISPID_IHTMLELEMENT2_APPLYELEMENT)] IHTMLElement* applyElement([in] IHTMLElement* apply,[in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_GETADJACENTTEXT)] BSTR getAdjacentText([in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_REPLACEADJACENTTEXT)] BSTR replaceAdjacentText([in] BSTR where,[in] BSTR newText);
    [propget, id(DISPID_IHTMLELEMENT2_CANHAVECHILDREN)] VARIANT_BOOL canHaveChildren();
    [id(DISPID_IHTMLELEMENT2_ADDBEHAVIOR)] long addBehavior([in] BSTR bstrUrl,[optional, in] VARIANT* pvarFactory);
    [id(DISPID_IHTMLELEMENT2_REMOVEBEHAVIOR)] VARIANT_BOOL removeBehavior([in] long cookie);
    [propget, id(DISPID_IHTMLELEMENT2_RUNTIMESTYLE), nonbrowsable] IHTMLStyle* runtimeStyle();
    [propget, id(DISPID_IHTMLELEMENT2_BEHAVIORURNS)] IDispatch* behaviorUrns();
    [propput, id(DISPID_IHTMLELEMENT2_TAGURN)] void tagUrn(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_TAGURN)] BSTR tagUrn();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] void onbeforeeditfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] VARIANT onbeforeeditfocus();
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATEVALUE), hidden, restricted] long readyStateValue();
    [id(DISPID_IHTMLELEMENT2_GETELEMENTSBYTAGNAME)] IHTMLElementCollection* getElementsByTagName([in] BSTR v);
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUENUMBER), hidden] long uniqueNumber();
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUEID), hidden] BSTR uniqueID();
    [propget, id(DISPID_IHTMLDOMNODE_NODETYPE)] long nodeType();
    [propget, id(DISPID_IHTMLDOMNODE_PARENTNODE)] IHTMLDOMNode* parentNode();
    [id(DISPID_IHTMLDOMNODE_HASCHILDNODES)] VARIANT_BOOL hasChildNodes();
    [propget, id(DISPID_IHTMLDOMNODE_CHILDNODES)] IDispatch* childNodes();
    [propget, id(DISPID_IHTMLDOMNODE_ATTRIBUTES)] IDispatch* attributes();
    [id(DISPID_IHTMLDOMNODE_INSERTBEFORE)] IHTMLDOMNode* insertBefore([in] IHTMLDOMNode* newChild,[optional, in] VARIANT refChild);
    [id(DISPID_IHTMLDOMNODE_REMOVECHILD)] IHTMLDOMNode* removeChild([in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_REPLACECHILD)] IHTMLDOMNode* replaceChild([in] IHTMLDOMNode* newChild,[in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_CLONENODE)] IHTMLDOMNode* cloneNode([in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_REMOVENODE)] IHTMLDOMNode* removeNode([defaultvalue(0), in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_SWAPNODE)] IHTMLDOMNode* swapNode([in] IHTMLDOMNode* otherNode);
    [id(DISPID_IHTMLDOMNODE_REPLACENODE)] IHTMLDOMNode* replaceNode([in] IHTMLDOMNode* replacement);
    [id(DISPID_IHTMLDOMNODE_APPENDCHILD)] IHTMLDOMNode* appendChild([in] IHTMLDOMNode* newChild);
    [propget, id(DISPID_IHTMLDOMNODE_NODENAME)] BSTR nodeName();
    [propput, id(DISPID_IHTMLDOMNODE_NODEVALUE)] void nodeValue(VARIANT v);
    [propget, id(DISPID_IHTMLDOMNODE_NODEVALUE)] VARIANT nodeValue();
    [propget, id(DISPID_IHTMLDOMNODE_FIRSTCHILD)] IHTMLDOMNode* firstChild();
    [propget, id(DISPID_IHTMLDOMNODE_LASTCHILD)] IHTMLDOMNode* lastChild();
    [propget, id(DISPID_IHTMLDOMNODE_PREVIOUSSIBLING)] IHTMLDOMNode* previousSibling();
    [propget, id(DISPID_IHTMLDOMNODE_NEXTSIBLING)] IHTMLDOMNode* nextSibling();
    [propput, id(DISPID_IHTMLDDELEMENT_NOWRAP), displaybind, bindable] void noWrap(VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLDDELEMENT_NOWRAP), displaybind, bindable] VARIANT_BOOL noWrap();
};
[
    uuid(3050f27f-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLDDElement
{
    [default]           dispinterface DispHTMLDDElement;
    [source, default]   dispinterface HTMLElementEvents;
    [source]            dispinterface HTMLElementEvents2;
                        interface IHTMLElement;
                        interface IHTMLElement2;
                        interface IHTMLUniqueName;
                        interface IHTMLDOMNode;
                        interface IHTMLDDElement;
};
cpp_quote("EXTERN_C const GUID CLSID_CDDElement;")
[
    odl,
    oleautomation,
    dual,
    uuid(3050f1f3-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLDTElement : IDispatch
{
    [propput, id(DISPID_IHTMLDTELEMENT_NOWRAP), displaybind, bindable] HRESULT noWrap([in] VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLDTELEMENT_NOWRAP), displaybind, bindable] HRESULT noWrap([retval, out] VARIANT_BOOL * p);
};
[
    hidden,
    uuid(3050f50d-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTMLDTElement
{
properties:
methods:
    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)] void setAttribute([in] BSTR strAttributeName,[in] VARIANT AttributeValue,[defaultvalue(1), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)] VARIANT getAttribute([in] BSTR strAttributeName,[defaultvalue(0), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)] VARIANT_BOOL removeAttribute([in] BSTR strAttributeName,[defaultvalue(1), in] LONG lFlags);
    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] void className(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] BSTR className();
    [propput, id(DISPID_IHTMLELEMENT_ID), bindable] void id(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_ID), bindable] BSTR id();
    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)] BSTR tagName();
    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)] IHTMLElement* parentElement();
    [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable] IHTMLStyle* style();
    [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] void onhelp(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] VARIANT onhelp();
    [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] void onclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] VARIANT onclick();
    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] void ondblclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] VARIANT ondblclick();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] void onkeydown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] VARIANT onkeydown();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] void onkeyup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] VARIANT onkeyup();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] void onkeypress(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] VARIANT onkeypress();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] void onmouseout(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] VARIANT onmouseout();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] void onmouseover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] VARIANT onmouseover();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] void onmousemove(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] VARIANT onmousemove();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] void onmousedown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] VARIANT onmousedown();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] void onmouseup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] VARIANT onmouseup();
    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)] IDispatch* document();
    [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] void title(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] BSTR title();
    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] void language(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] BSTR language();
    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] void onselectstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] VARIANT onselectstart();
    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)] void scrollIntoView([optional, in] VARIANT varargStart);
    [id(DISPID_IHTMLELEMENT_CONTAINS)] VARIANT_BOOL contains([in] IHTMLElement* pChild);
    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable] long sourceIndex();
    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)] VARIANT recordNumber();
    [propput, id(DISPID_IHTMLELEMENT_LANG)] void lang(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANG)] BSTR lang();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)] long offsetLeft();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)] long offsetTop();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)] long offsetWidth();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)] long offsetHeight();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)] IHTMLElement* offsetParent();
    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)] void innerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)] BSTR innerHTML();
    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)] void innerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)] BSTR innerText();
    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)] void outerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)] BSTR outerHTML();
    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)] void outerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)] BSTR outerText();
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)] void insertAdjacentHTML([in] BSTR where,[in] BSTR html);
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)] void insertAdjacentText([in] BSTR where,[in] BSTR text);
    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)] IHTMLElement* parentTextEdit();
    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)] VARIANT_BOOL isTextEdit();
    [id(DISPID_IHTMLELEMENT_CLICK)] void click();
    [propget, id(DISPID_IHTMLELEMENT_FILTERS)] IHTMLFiltersCollection* filters();
    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] void ondragstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] VARIANT ondragstart();
    [id(DISPID_IHTMLELEMENT_TOSTRING)] BSTR toString();
    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] void onbeforeupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] VARIANT onbeforeupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] void onafterupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] VARIANT onafterupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] void onerrorupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] VARIANT onerrorupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] void onrowexit(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] VARIANT onrowexit();
    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] void onrowenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] VARIANT onrowenter();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] void ondatasetchanged(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] VARIANT ondatasetchanged();
    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] void ondataavailable(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] VARIANT ondataavailable();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] void ondatasetcomplete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] VARIANT ondatasetcomplete();
    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] void onfilterchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] VARIANT onfilterchange();
    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)] IDispatch* children();
    [propget, id(DISPID_IHTMLELEMENT_ALL)] IDispatch* all();
    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)] BSTR scopeName();
    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)] void setCapture([defaultvalue(-1), in] VARIANT_BOOL containerCapture);
    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)] void releaseCapture();
    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] void onlosecapture(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] VARIANT onlosecapture();
    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)] BSTR componentFromPoint([in] long x,[in] long y);
    [id(DISPID_IHTMLELEMENT2_DOSCROLL)] void doScroll([optional, in] VARIANT component);
    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] void onscroll(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] VARIANT onscroll();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] void ondrag(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] VARIANT ondrag();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] void ondragend(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] VARIANT ondragend();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] void ondragenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] VARIANT ondragenter();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] void ondragover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] VARIANT ondragover();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] void ondragleave(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] VARIANT ondragleave();
    [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] void ondrop(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] VARIANT ondrop();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] void onbeforecut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] VARIANT onbeforecut();
    [propput, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] void oncut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] VARIANT oncut();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] void onbeforecopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] VARIANT onbeforecopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] void oncopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] VARIANT oncopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] void onbeforepaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] VARIANT onbeforepaste();
    [propput, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] void onpaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] VARIANT onpaste();
    [propget, id(DISPID_IHTMLELEMENT2_CURRENTSTYLE), nonbrowsable] IHTMLCurrentStyle* currentStyle();
    [propput, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] void onpropertychange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] VARIANT onpropertychange();
    [id(DISPID_IHTMLELEMENT2_GETCLIENTRECTS)] IHTMLRectCollection* getClientRects();
    [id(DISPID_IHTMLELEMENT2_GETBOUNDINGCLIENTRECT)] IHTMLRect* getBoundingClientRect();
    [id(DISPID_IHTMLELEMENT2_SETEXPRESSION)] void setExpression([in] BSTR propname,[in] BSTR expression,[defaultvalue(""), in] BSTR language);
    [id(DISPID_IHTMLELEMENT2_GETEXPRESSION)] VARIANT getExpression([in] BSTR propname);
    [id(DISPID_IHTMLELEMENT2_REMOVEEXPRESSION)] VARIANT_BOOL removeExpression([in] BSTR propname);
    [propput, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] void tabIndex(short v);
    [propget, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] short tabIndex();
    [id(DISPID_IHTMLELEMENT2_FOCUS)] void focus();
    [propput, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] void accessKey(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] BSTR accessKey();
    [propput, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] void onblur(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] VARIANT onblur();
    [propput, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] void onfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] VARIANT onfocus();
    [propput, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] void onresize(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] VARIANT onresize();
    [id(DISPID_IHTMLELEMENT2_BLUR)] void blur();
    [id(DISPID_IHTMLELEMENT2_ADDFILTER)] void addFilter([in] IUnknown* pUnk);
    [id(DISPID_IHTMLELEMENT2_REMOVEFILTER)] void removeFilter([in] IUnknown* pUnk);
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTHEIGHT), displaybind, bindable] long clientHeight();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTWIDTH), displaybind, bindable] long clientWidth();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTTOP), displaybind, bindable] long clientTop();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTLEFT), displaybind, bindable] long clientLeft();
    [id(DISPID_IHTMLELEMENT2_ATTACHEVENT)] VARIANT_BOOL attachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [id(DISPID_IHTMLELEMENT2_DETACHEVENT)] void detachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATE)] VARIANT readyState();
    [propput, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] void onreadystatechange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] VARIANT onreadystatechange();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] void onrowsdelete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] VARIANT onrowsdelete();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] void onrowsinserted(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] VARIANT onrowsinserted();
    [propput, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] void oncellchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] VARIANT oncellchange();
    [propput, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] void dir(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] BSTR dir();
    [id(DISPID_IHTMLELEMENT2_CREATECONTROLRANGE)] IDispatch* createControlRange();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLHEIGHT), displaybind, bindable] long scrollHeight();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLWIDTH), displaybind, bindable] long scrollWidth();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] void scrollTop(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] long scrollTop();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] void scrollLeft(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] long scrollLeft();
    [id(DISPID_IHTMLELEMENT2_CLEARATTRIBUTES)] void clearAttributes();
    [id(DISPID_IHTMLELEMENT2_MERGEATTRIBUTES)] void mergeAttributes([in] IHTMLElement* mergeThis);
    [propput, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] void oncontextmenu(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] VARIANT oncontextmenu();
    [id(DISPID_IHTMLELEMENT2_INSERTADJACENTELEMENT)] IHTMLElement* insertAdjacentElement([in] BSTR where,[in] IHTMLElement* insertedElement);
    [id(DISPID_IHTMLELEMENT2_APPLYELEMENT)] IHTMLElement* applyElement([in] IHTMLElement* apply,[in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_GETADJACENTTEXT)] BSTR getAdjacentText([in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_REPLACEADJACENTTEXT)] BSTR replaceAdjacentText([in] BSTR where,[in] BSTR newText);
    [propget, id(DISPID_IHTMLELEMENT2_CANHAVECHILDREN)] VARIANT_BOOL canHaveChildren();
    [id(DISPID_IHTMLELEMENT2_ADDBEHAVIOR)] long addBehavior([in] BSTR bstrUrl,[optional, in] VARIANT* pvarFactory);
    [id(DISPID_IHTMLELEMENT2_REMOVEBEHAVIOR)] VARIANT_BOOL removeBehavior([in] long cookie);
    [propget, id(DISPID_IHTMLELEMENT2_RUNTIMESTYLE), nonbrowsable] IHTMLStyle* runtimeStyle();
    [propget, id(DISPID_IHTMLELEMENT2_BEHAVIORURNS)] IDispatch* behaviorUrns();
    [propput, id(DISPID_IHTMLELEMENT2_TAGURN)] void tagUrn(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_TAGURN)] BSTR tagUrn();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] void onbeforeeditfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] VARIANT onbeforeeditfocus();
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATEVALUE), hidden, restricted] long readyStateValue();
    [id(DISPID_IHTMLELEMENT2_GETELEMENTSBYTAGNAME)] IHTMLElementCollection* getElementsByTagName([in] BSTR v);
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUENUMBER), hidden] long uniqueNumber();
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUEID), hidden] BSTR uniqueID();
    [propget, id(DISPID_IHTMLDOMNODE_NODETYPE)] long nodeType();
    [propget, id(DISPID_IHTMLDOMNODE_PARENTNODE)] IHTMLDOMNode* parentNode();
    [id(DISPID_IHTMLDOMNODE_HASCHILDNODES)] VARIANT_BOOL hasChildNodes();
    [propget, id(DISPID_IHTMLDOMNODE_CHILDNODES)] IDispatch* childNodes();
    [propget, id(DISPID_IHTMLDOMNODE_ATTRIBUTES)] IDispatch* attributes();
    [id(DISPID_IHTMLDOMNODE_INSERTBEFORE)] IHTMLDOMNode* insertBefore([in] IHTMLDOMNode* newChild,[optional, in] VARIANT refChild);
    [id(DISPID_IHTMLDOMNODE_REMOVECHILD)] IHTMLDOMNode* removeChild([in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_REPLACECHILD)] IHTMLDOMNode* replaceChild([in] IHTMLDOMNode* newChild,[in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_CLONENODE)] IHTMLDOMNode* cloneNode([in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_REMOVENODE)] IHTMLDOMNode* removeNode([defaultvalue(0), in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_SWAPNODE)] IHTMLDOMNode* swapNode([in] IHTMLDOMNode* otherNode);
    [id(DISPID_IHTMLDOMNODE_REPLACENODE)] IHTMLDOMNode* replaceNode([in] IHTMLDOMNode* replacement);
    [id(DISPID_IHTMLDOMNODE_APPENDCHILD)] IHTMLDOMNode* appendChild([in] IHTMLDOMNode* newChild);
    [propget, id(DISPID_IHTMLDOMNODE_NODENAME)] BSTR nodeName();
    [propput, id(DISPID_IHTMLDOMNODE_NODEVALUE)] void nodeValue(VARIANT v);
    [propget, id(DISPID_IHTMLDOMNODE_NODEVALUE)] VARIANT nodeValue();
    [propget, id(DISPID_IHTMLDOMNODE_FIRSTCHILD)] IHTMLDOMNode* firstChild();
    [propget, id(DISPID_IHTMLDOMNODE_LASTCHILD)] IHTMLDOMNode* lastChild();
    [propget, id(DISPID_IHTMLDOMNODE_PREVIOUSSIBLING)] IHTMLDOMNode* previousSibling();
    [propget, id(DISPID_IHTMLDOMNODE_NEXTSIBLING)] IHTMLDOMNode* nextSibling();
    [propput, id(DISPID_IHTMLDTELEMENT_NOWRAP), displaybind, bindable] void noWrap(VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLDTELEMENT_NOWRAP), displaybind, bindable] VARIANT_BOOL noWrap();
};
[
    uuid(3050f27c-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLDTElement
{
    [default]           dispinterface DispHTMLDTElement;
    [source, default]   dispinterface HTMLElementEvents;
    [source]            dispinterface HTMLElementEvents2;
                        interface IHTMLElement;
                        interface IHTMLElement2;
                        interface IHTMLUniqueName;
                        interface IHTMLDOMNode;
                        interface IHTMLDTElement;
};
cpp_quote("EXTERN_C const GUID CLSID_CDTElement;")
[
    odl,
    oleautomation,
    dual,
    uuid(3050f1f0-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLBRElement : IDispatch
{
    [propput, id(DISPID_IHTMLBRELEMENT_CLEAR), displaybind, bindable] HRESULT clear([in] BSTR v);
    [propget, id(DISPID_IHTMLBRELEMENT_CLEAR), displaybind, bindable] HRESULT clear([retval, out] BSTR * p);
};
[
    hidden,
    uuid(3050f53a-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTMLBRElement
{
properties:
methods:
    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)] void setAttribute([in] BSTR strAttributeName,[in] VARIANT AttributeValue,[defaultvalue(1), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)] VARIANT getAttribute([in] BSTR strAttributeName,[defaultvalue(0), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)] VARIANT_BOOL removeAttribute([in] BSTR strAttributeName,[defaultvalue(1), in] LONG lFlags);
    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] void className(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] BSTR className();
    [propput, id(DISPID_IHTMLELEMENT_ID), bindable] void id(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_ID), bindable] BSTR id();
    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)] BSTR tagName();
    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)] IHTMLElement* parentElement();
    [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable] IHTMLStyle* style();
    [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] void onhelp(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] VARIANT onhelp();
    [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] void onclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] VARIANT onclick();
    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] void ondblclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] VARIANT ondblclick();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] void onkeydown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] VARIANT onkeydown();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] void onkeyup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] VARIANT onkeyup();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] void onkeypress(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] VARIANT onkeypress();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] void onmouseout(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] VARIANT onmouseout();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] void onmouseover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] VARIANT onmouseover();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] void onmousemove(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] VARIANT onmousemove();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] void onmousedown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] VARIANT onmousedown();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] void onmouseup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] VARIANT onmouseup();
    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)] IDispatch* document();
    [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] void title(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] BSTR title();
    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] void language(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] BSTR language();
    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] void onselectstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] VARIANT onselectstart();
    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)] void scrollIntoView([optional, in] VARIANT varargStart);
    [id(DISPID_IHTMLELEMENT_CONTAINS)] VARIANT_BOOL contains([in] IHTMLElement* pChild);
    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable] long sourceIndex();
    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)] VARIANT recordNumber();
    [propput, id(DISPID_IHTMLELEMENT_LANG)] void lang(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANG)] BSTR lang();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)] long offsetLeft();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)] long offsetTop();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)] long offsetWidth();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)] long offsetHeight();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)] IHTMLElement* offsetParent();
    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)] void innerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)] BSTR innerHTML();
    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)] void innerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)] BSTR innerText();
    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)] void outerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)] BSTR outerHTML();
    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)] void outerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)] BSTR outerText();
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)] void insertAdjacentHTML([in] BSTR where,[in] BSTR html);
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)] void insertAdjacentText([in] BSTR where,[in] BSTR text);
    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)] IHTMLElement* parentTextEdit();
    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)] VARIANT_BOOL isTextEdit();
    [id(DISPID_IHTMLELEMENT_CLICK)] void click();
    [propget, id(DISPID_IHTMLELEMENT_FILTERS)] IHTMLFiltersCollection* filters();
    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] void ondragstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] VARIANT ondragstart();
    [id(DISPID_IHTMLELEMENT_TOSTRING)] BSTR toString();
    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] void onbeforeupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] VARIANT onbeforeupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] void onafterupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] VARIANT onafterupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] void onerrorupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] VARIANT onerrorupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] void onrowexit(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] VARIANT onrowexit();
    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] void onrowenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] VARIANT onrowenter();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] void ondatasetchanged(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] VARIANT ondatasetchanged();
    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] void ondataavailable(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] VARIANT ondataavailable();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] void ondatasetcomplete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] VARIANT ondatasetcomplete();
    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] void onfilterchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] VARIANT onfilterchange();
    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)] IDispatch* children();
    [propget, id(DISPID_IHTMLELEMENT_ALL)] IDispatch* all();
    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)] BSTR scopeName();
    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)] void setCapture([defaultvalue(-1), in] VARIANT_BOOL containerCapture);
    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)] void releaseCapture();
    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] void onlosecapture(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] VARIANT onlosecapture();
    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)] BSTR componentFromPoint([in] long x,[in] long y);
    [id(DISPID_IHTMLELEMENT2_DOSCROLL)] void doScroll([optional, in] VARIANT component);
    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] void onscroll(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] VARIANT onscroll();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] void ondrag(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] VARIANT ondrag();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] void ondragend(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] VARIANT ondragend();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] void ondragenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] VARIANT ondragenter();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] void ondragover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] VARIANT ondragover();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] void ondragleave(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] VARIANT ondragleave();
    [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] void ondrop(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] VARIANT ondrop();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] void onbeforecut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] VARIANT onbeforecut();
    [propput, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] void oncut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] VARIANT oncut();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] void onbeforecopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] VARIANT onbeforecopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] void oncopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] VARIANT oncopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] void onbeforepaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] VARIANT onbeforepaste();
    [propput, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] void onpaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] VARIANT onpaste();
    [propget, id(DISPID_IHTMLELEMENT2_CURRENTSTYLE), nonbrowsable] IHTMLCurrentStyle* currentStyle();
    [propput, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] void onpropertychange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] VARIANT onpropertychange();
    [id(DISPID_IHTMLELEMENT2_GETCLIENTRECTS)] IHTMLRectCollection* getClientRects();
    [id(DISPID_IHTMLELEMENT2_GETBOUNDINGCLIENTRECT)] IHTMLRect* getBoundingClientRect();
    [id(DISPID_IHTMLELEMENT2_SETEXPRESSION)] void setExpression([in] BSTR propname,[in] BSTR expression,[defaultvalue(""), in] BSTR language);
    [id(DISPID_IHTMLELEMENT2_GETEXPRESSION)] VARIANT getExpression([in] BSTR propname);
    [id(DISPID_IHTMLELEMENT2_REMOVEEXPRESSION)] VARIANT_BOOL removeExpression([in] BSTR propname);
    [propput, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] void tabIndex(short v);
    [propget, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] short tabIndex();
    [id(DISPID_IHTMLELEMENT2_FOCUS)] void focus();
    [propput, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] void accessKey(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] BSTR accessKey();
    [propput, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] void onblur(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] VARIANT onblur();
    [propput, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] void onfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] VARIANT onfocus();
    [propput, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] void onresize(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] VARIANT onresize();
    [id(DISPID_IHTMLELEMENT2_BLUR)] void blur();
    [id(DISPID_IHTMLELEMENT2_ADDFILTER)] void addFilter([in] IUnknown* pUnk);
    [id(DISPID_IHTMLELEMENT2_REMOVEFILTER)] void removeFilter([in] IUnknown* pUnk);
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTHEIGHT), displaybind, bindable] long clientHeight();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTWIDTH), displaybind, bindable] long clientWidth();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTTOP), displaybind, bindable] long clientTop();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTLEFT), displaybind, bindable] long clientLeft();
    [id(DISPID_IHTMLELEMENT2_ATTACHEVENT)] VARIANT_BOOL attachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [id(DISPID_IHTMLELEMENT2_DETACHEVENT)] void detachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATE)] VARIANT readyState();
    [propput, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] void onreadystatechange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] VARIANT onreadystatechange();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] void onrowsdelete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] VARIANT onrowsdelete();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] void onrowsinserted(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] VARIANT onrowsinserted();
    [propput, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] void oncellchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] VARIANT oncellchange();
    [propput, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] void dir(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] BSTR dir();
    [id(DISPID_IHTMLELEMENT2_CREATECONTROLRANGE)] IDispatch* createControlRange();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLHEIGHT), displaybind, bindable] long scrollHeight();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLWIDTH), displaybind, bindable] long scrollWidth();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] void scrollTop(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] long scrollTop();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] void scrollLeft(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] long scrollLeft();
    [id(DISPID_IHTMLELEMENT2_CLEARATTRIBUTES)] void clearAttributes();
    [id(DISPID_IHTMLELEMENT2_MERGEATTRIBUTES)] void mergeAttributes([in] IHTMLElement* mergeThis);
    [propput, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] void oncontextmenu(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] VARIANT oncontextmenu();
    [id(DISPID_IHTMLELEMENT2_INSERTADJACENTELEMENT)] IHTMLElement* insertAdjacentElement([in] BSTR where,[in] IHTMLElement* insertedElement);
    [id(DISPID_IHTMLELEMENT2_APPLYELEMENT)] IHTMLElement* applyElement([in] IHTMLElement* apply,[in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_GETADJACENTTEXT)] BSTR getAdjacentText([in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_REPLACEADJACENTTEXT)] BSTR replaceAdjacentText([in] BSTR where,[in] BSTR newText);
    [propget, id(DISPID_IHTMLELEMENT2_CANHAVECHILDREN)] VARIANT_BOOL canHaveChildren();
    [id(DISPID_IHTMLELEMENT2_ADDBEHAVIOR)] long addBehavior([in] BSTR bstrUrl,[optional, in] VARIANT* pvarFactory);
    [id(DISPID_IHTMLELEMENT2_REMOVEBEHAVIOR)] VARIANT_BOOL removeBehavior([in] long cookie);
    [propget, id(DISPID_IHTMLELEMENT2_RUNTIMESTYLE), nonbrowsable] IHTMLStyle* runtimeStyle();
    [propget, id(DISPID_IHTMLELEMENT2_BEHAVIORURNS)] IDispatch* behaviorUrns();
    [propput, id(DISPID_IHTMLELEMENT2_TAGURN)] void tagUrn(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_TAGURN)] BSTR tagUrn();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] void onbeforeeditfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] VARIANT onbeforeeditfocus();
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATEVALUE), hidden, restricted] long readyStateValue();
    [id(DISPID_IHTMLELEMENT2_GETELEMENTSBYTAGNAME)] IHTMLElementCollection* getElementsByTagName([in] BSTR v);
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUENUMBER), hidden] long uniqueNumber();
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUEID), hidden] BSTR uniqueID();
    [propget, id(DISPID_IHTMLDOMNODE_NODETYPE)] long nodeType();
    [propget, id(DISPID_IHTMLDOMNODE_PARENTNODE)] IHTMLDOMNode* parentNode();
    [id(DISPID_IHTMLDOMNODE_HASCHILDNODES)] VARIANT_BOOL hasChildNodes();
    [propget, id(DISPID_IHTMLDOMNODE_CHILDNODES)] IDispatch* childNodes();
    [propget, id(DISPID_IHTMLDOMNODE_ATTRIBUTES)] IDispatch* attributes();
    [id(DISPID_IHTMLDOMNODE_INSERTBEFORE)] IHTMLDOMNode* insertBefore([in] IHTMLDOMNode* newChild,[optional, in] VARIANT refChild);
    [id(DISPID_IHTMLDOMNODE_REMOVECHILD)] IHTMLDOMNode* removeChild([in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_REPLACECHILD)] IHTMLDOMNode* replaceChild([in] IHTMLDOMNode* newChild,[in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_CLONENODE)] IHTMLDOMNode* cloneNode([in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_REMOVENODE)] IHTMLDOMNode* removeNode([defaultvalue(0), in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_SWAPNODE)] IHTMLDOMNode* swapNode([in] IHTMLDOMNode* otherNode);
    [id(DISPID_IHTMLDOMNODE_REPLACENODE)] IHTMLDOMNode* replaceNode([in] IHTMLDOMNode* replacement);
    [id(DISPID_IHTMLDOMNODE_APPENDCHILD)] IHTMLDOMNode* appendChild([in] IHTMLDOMNode* newChild);
    [propget, id(DISPID_IHTMLDOMNODE_NODENAME)] BSTR nodeName();
    [propput, id(DISPID_IHTMLDOMNODE_NODEVALUE)] void nodeValue(VARIANT v);
    [propget, id(DISPID_IHTMLDOMNODE_NODEVALUE)] VARIANT nodeValue();
    [propget, id(DISPID_IHTMLDOMNODE_FIRSTCHILD)] IHTMLDOMNode* firstChild();
    [propget, id(DISPID_IHTMLDOMNODE_LASTCHILD)] IHTMLDOMNode* lastChild();
    [propget, id(DISPID_IHTMLDOMNODE_PREVIOUSSIBLING)] IHTMLDOMNode* previousSibling();
    [propget, id(DISPID_IHTMLDOMNODE_NEXTSIBLING)] IHTMLDOMNode* nextSibling();
    [propput, id(DISPID_IHTMLBRELEMENT_CLEAR), displaybind, bindable] void clear(BSTR v);
    [propget, id(DISPID_IHTMLBRELEMENT_CLEAR), displaybind, bindable] BSTR clear();
};
[
    uuid(3050f280-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLBRElement
{
    [default]           dispinterface DispHTMLBRElement;
    [source, default]   dispinterface HTMLElementEvents;
    [source]            dispinterface HTMLElementEvents2;
                        interface IHTMLElement;
                        interface IHTMLElement2;
                        interface IHTMLUniqueName;
                        interface IHTMLDOMNode;
                        interface IHTMLBRElement;
};
cpp_quote("EXTERN_C const GUID CLSID_CBRElement;")
[
    odl,
    oleautomation,
    dual,
    uuid(3050f1f1-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLDListElement : IDispatch
{
    [propput, id(DISPID_IHTMLDLISTELEMENT_COMPACT), bindable] HRESULT compact([in] VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLDLISTELEMENT_COMPACT), bindable] HRESULT compact([retval, out] VARIANT_BOOL * p);
};
[
    hidden,
    uuid(3050f53b-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTMLDListElement
{
properties:
methods:
    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)] void setAttribute([in] BSTR strAttributeName,[in] VARIANT AttributeValue,[defaultvalue(1), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)] VARIANT getAttribute([in] BSTR strAttributeName,[defaultvalue(0), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)] VARIANT_BOOL removeAttribute([in] BSTR strAttributeName,[defaultvalue(1), in] LONG lFlags);
    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] void className(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] BSTR className();
    [propput, id(DISPID_IHTMLELEMENT_ID), bindable] void id(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_ID), bindable] BSTR id();
    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)] BSTR tagName();
    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)] IHTMLElement* parentElement();
    [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable] IHTMLStyle* style();
    [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] void onhelp(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] VARIANT onhelp();
    [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] void onclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] VARIANT onclick();
    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] void ondblclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] VARIANT ondblclick();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] void onkeydown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] VARIANT onkeydown();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] void onkeyup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] VARIANT onkeyup();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] void onkeypress(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] VARIANT onkeypress();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] void onmouseout(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] VARIANT onmouseout();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] void onmouseover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] VARIANT onmouseover();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] void onmousemove(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] VARIANT onmousemove();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] void onmousedown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] VARIANT onmousedown();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] void onmouseup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] VARIANT onmouseup();
    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)] IDispatch* document();
    [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] void title(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] BSTR title();
    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] void language(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] BSTR language();
    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] void onselectstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] VARIANT onselectstart();
    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)] void scrollIntoView([optional, in] VARIANT varargStart);
    [id(DISPID_IHTMLELEMENT_CONTAINS)] VARIANT_BOOL contains([in] IHTMLElement* pChild);
    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable] long sourceIndex();
    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)] VARIANT recordNumber();
    [propput, id(DISPID_IHTMLELEMENT_LANG)] void lang(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANG)] BSTR lang();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)] long offsetLeft();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)] long offsetTop();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)] long offsetWidth();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)] long offsetHeight();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)] IHTMLElement* offsetParent();
    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)] void innerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)] BSTR innerHTML();
    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)] void innerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)] BSTR innerText();
    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)] void outerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)] BSTR outerHTML();
    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)] void outerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)] BSTR outerText();
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)] void insertAdjacentHTML([in] BSTR where,[in] BSTR html);
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)] void insertAdjacentText([in] BSTR where,[in] BSTR text);
    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)] IHTMLElement* parentTextEdit();
    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)] VARIANT_BOOL isTextEdit();
    [id(DISPID_IHTMLELEMENT_CLICK)] void click();
    [propget, id(DISPID_IHTMLELEMENT_FILTERS)] IHTMLFiltersCollection* filters();
    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] void ondragstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] VARIANT ondragstart();
    [id(DISPID_IHTMLELEMENT_TOSTRING)] BSTR toString();
    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] void onbeforeupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] VARIANT onbeforeupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] void onafterupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] VARIANT onafterupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] void onerrorupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] VARIANT onerrorupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] void onrowexit(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] VARIANT onrowexit();
    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] void onrowenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] VARIANT onrowenter();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] void ondatasetchanged(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] VARIANT ondatasetchanged();
    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] void ondataavailable(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] VARIANT ondataavailable();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] void ondatasetcomplete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] VARIANT ondatasetcomplete();
    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] void onfilterchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] VARIANT onfilterchange();
    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)] IDispatch* children();
    [propget, id(DISPID_IHTMLELEMENT_ALL)] IDispatch* all();
    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)] BSTR scopeName();
    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)] void setCapture([defaultvalue(-1), in] VARIANT_BOOL containerCapture);
    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)] void releaseCapture();
    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] void onlosecapture(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] VARIANT onlosecapture();
    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)] BSTR componentFromPoint([in] long x,[in] long y);
    [id(DISPID_IHTMLELEMENT2_DOSCROLL)] void doScroll([optional, in] VARIANT component);
    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] void onscroll(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] VARIANT onscroll();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] void ondrag(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] VARIANT ondrag();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] void ondragend(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] VARIANT ondragend();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] void ondragenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] VARIANT ondragenter();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] void ondragover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] VARIANT ondragover();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] void ondragleave(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] VARIANT ondragleave();
    [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] void ondrop(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] VARIANT ondrop();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] void onbeforecut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] VARIANT onbeforecut();
    [propput, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] void oncut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] VARIANT oncut();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] void onbeforecopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] VARIANT onbeforecopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] void oncopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] VARIANT oncopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] void onbeforepaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] VARIANT onbeforepaste();
    [propput, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] void onpaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] VARIANT onpaste();
    [propget, id(DISPID_IHTMLELEMENT2_CURRENTSTYLE), nonbrowsable] IHTMLCurrentStyle* currentStyle();
    [propput, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] void onpropertychange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] VARIANT onpropertychange();
    [id(DISPID_IHTMLELEMENT2_GETCLIENTRECTS)] IHTMLRectCollection* getClientRects();
    [id(DISPID_IHTMLELEMENT2_GETBOUNDINGCLIENTRECT)] IHTMLRect* getBoundingClientRect();
    [id(DISPID_IHTMLELEMENT2_SETEXPRESSION)] void setExpression([in] BSTR propname,[in] BSTR expression,[defaultvalue(""), in] BSTR language);
    [id(DISPID_IHTMLELEMENT2_GETEXPRESSION)] VARIANT getExpression([in] BSTR propname);
    [id(DISPID_IHTMLELEMENT2_REMOVEEXPRESSION)] VARIANT_BOOL removeExpression([in] BSTR propname);
    [propput, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] void tabIndex(short v);
    [propget, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] short tabIndex();
    [id(DISPID_IHTMLELEMENT2_FOCUS)] void focus();
    [propput, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] void accessKey(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] BSTR accessKey();
    [propput, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] void onblur(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] VARIANT onblur();
    [propput, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] void onfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] VARIANT onfocus();
    [propput, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] void onresize(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] VARIANT onresize();
    [id(DISPID_IHTMLELEMENT2_BLUR)] void blur();
    [id(DISPID_IHTMLELEMENT2_ADDFILTER)] void addFilter([in] IUnknown* pUnk);
    [id(DISPID_IHTMLELEMENT2_REMOVEFILTER)] void removeFilter([in] IUnknown* pUnk);
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTHEIGHT), displaybind, bindable] long clientHeight();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTWIDTH), displaybind, bindable] long clientWidth();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTTOP), displaybind, bindable] long clientTop();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTLEFT), displaybind, bindable] long clientLeft();
    [id(DISPID_IHTMLELEMENT2_ATTACHEVENT)] VARIANT_BOOL attachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [id(DISPID_IHTMLELEMENT2_DETACHEVENT)] void detachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATE)] VARIANT readyState();
    [propput, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] void onreadystatechange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] VARIANT onreadystatechange();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] void onrowsdelete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] VARIANT onrowsdelete();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] void onrowsinserted(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] VARIANT onrowsinserted();
    [propput, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] void oncellchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] VARIANT oncellchange();
    [propput, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] void dir(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] BSTR dir();
    [id(DISPID_IHTMLELEMENT2_CREATECONTROLRANGE)] IDispatch* createControlRange();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLHEIGHT), displaybind, bindable] long scrollHeight();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLWIDTH), displaybind, bindable] long scrollWidth();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] void scrollTop(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] long scrollTop();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] void scrollLeft(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] long scrollLeft();
    [id(DISPID_IHTMLELEMENT2_CLEARATTRIBUTES)] void clearAttributes();
    [id(DISPID_IHTMLELEMENT2_MERGEATTRIBUTES)] void mergeAttributes([in] IHTMLElement* mergeThis);
    [propput, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] void oncontextmenu(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] VARIANT oncontextmenu();
    [id(DISPID_IHTMLELEMENT2_INSERTADJACENTELEMENT)] IHTMLElement* insertAdjacentElement([in] BSTR where,[in] IHTMLElement* insertedElement);
    [id(DISPID_IHTMLELEMENT2_APPLYELEMENT)] IHTMLElement* applyElement([in] IHTMLElement* apply,[in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_GETADJACENTTEXT)] BSTR getAdjacentText([in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_REPLACEADJACENTTEXT)] BSTR replaceAdjacentText([in] BSTR where,[in] BSTR newText);
    [propget, id(DISPID_IHTMLELEMENT2_CANHAVECHILDREN)] VARIANT_BOOL canHaveChildren();
    [id(DISPID_IHTMLELEMENT2_ADDBEHAVIOR)] long addBehavior([in] BSTR bstrUrl,[optional, in] VARIANT* pvarFactory);
    [id(DISPID_IHTMLELEMENT2_REMOVEBEHAVIOR)] VARIANT_BOOL removeBehavior([in] long cookie);
    [propget, id(DISPID_IHTMLELEMENT2_RUNTIMESTYLE), nonbrowsable] IHTMLStyle* runtimeStyle();
    [propget, id(DISPID_IHTMLELEMENT2_BEHAVIORURNS)] IDispatch* behaviorUrns();
    [propput, id(DISPID_IHTMLELEMENT2_TAGURN)] void tagUrn(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_TAGURN)] BSTR tagUrn();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] void onbeforeeditfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] VARIANT onbeforeeditfocus();
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATEVALUE), hidden, restricted] long readyStateValue();
    [id(DISPID_IHTMLELEMENT2_GETELEMENTSBYTAGNAME)] IHTMLElementCollection* getElementsByTagName([in] BSTR v);
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUENUMBER), hidden] long uniqueNumber();
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUEID), hidden] BSTR uniqueID();
    [propget, id(DISPID_IHTMLDOMNODE_NODETYPE)] long nodeType();
    [propget, id(DISPID_IHTMLDOMNODE_PARENTNODE)] IHTMLDOMNode* parentNode();
    [id(DISPID_IHTMLDOMNODE_HASCHILDNODES)] VARIANT_BOOL hasChildNodes();
    [propget, id(DISPID_IHTMLDOMNODE_CHILDNODES)] IDispatch* childNodes();
    [propget, id(DISPID_IHTMLDOMNODE_ATTRIBUTES)] IDispatch* attributes();
    [id(DISPID_IHTMLDOMNODE_INSERTBEFORE)] IHTMLDOMNode* insertBefore([in] IHTMLDOMNode* newChild,[optional, in] VARIANT refChild);
    [id(DISPID_IHTMLDOMNODE_REMOVECHILD)] IHTMLDOMNode* removeChild([in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_REPLACECHILD)] IHTMLDOMNode* replaceChild([in] IHTMLDOMNode* newChild,[in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_CLONENODE)] IHTMLDOMNode* cloneNode([in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_REMOVENODE)] IHTMLDOMNode* removeNode([defaultvalue(0), in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_SWAPNODE)] IHTMLDOMNode* swapNode([in] IHTMLDOMNode* otherNode);
    [id(DISPID_IHTMLDOMNODE_REPLACENODE)] IHTMLDOMNode* replaceNode([in] IHTMLDOMNode* replacement);
    [id(DISPID_IHTMLDOMNODE_APPENDCHILD)] IHTMLDOMNode* appendChild([in] IHTMLDOMNode* newChild);
    [propget, id(DISPID_IHTMLDOMNODE_NODENAME)] BSTR nodeName();
    [propput, id(DISPID_IHTMLDOMNODE_NODEVALUE)] void nodeValue(VARIANT v);
    [propget, id(DISPID_IHTMLDOMNODE_NODEVALUE)] VARIANT nodeValue();
    [propget, id(DISPID_IHTMLDOMNODE_FIRSTCHILD)] IHTMLDOMNode* firstChild();
    [propget, id(DISPID_IHTMLDOMNODE_LASTCHILD)] IHTMLDOMNode* lastChild();
    [propget, id(DISPID_IHTMLDOMNODE_PREVIOUSSIBLING)] IHTMLDOMNode* previousSibling();
    [propget, id(DISPID_IHTMLDOMNODE_NEXTSIBLING)] IHTMLDOMNode* nextSibling();
    [propput, id(DISPID_IHTMLDLISTELEMENT_COMPACT), bindable] void compact(VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLDLISTELEMENT_COMPACT), bindable] VARIANT_BOOL compact();
};
[
    uuid(3050f27d-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLDListElement
{
    [default]           dispinterface DispHTMLDListElement;
    [source, default]   dispinterface HTMLElementEvents;
    [source]            dispinterface HTMLElementEvents2;
                        interface IHTMLElement;
                        interface IHTMLElement2;
                        interface IHTMLUniqueName;
                        interface IHTMLDOMNode;
                        interface IHTMLListElement;
                        interface IHTMLDListElement;
};
cpp_quote("EXTERN_C const GUID CLSID_CDListElement;")
[
    odl,
    oleautomation,
    dual,
    uuid(3050f1f4-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLHRElement : IDispatch
{
    [propput, id(DISPID_IHTMLHRELEMENT_ALIGN), displaybind, bindable] HRESULT align([in] BSTR v);
    [propget, id(DISPID_IHTMLHRELEMENT_ALIGN), displaybind, bindable] HRESULT align([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLHRELEMENT_COLOR), displaybind, bindable] HRESULT color([in] VARIANT v);
    [propget, id(DISPID_IHTMLHRELEMENT_COLOR), displaybind, bindable] HRESULT color([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLHRELEMENT_NOSHADE), bindable] HRESULT noShade([in] VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLHRELEMENT_NOSHADE), bindable] HRESULT noShade([retval, out] VARIANT_BOOL * p);
    [propput, id(DISPID_IHTMLHRELEMENT_WIDTH)] HRESULT width([in] VARIANT v);
    [propget, id(DISPID_IHTMLHRELEMENT_WIDTH)] HRESULT width([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLHRELEMENT_SIZE)] HRESULT size([in] VARIANT v);
    [propget, id(DISPID_IHTMLHRELEMENT_SIZE)] HRESULT size([retval, out] VARIANT * p);
};
[
    hidden,
    uuid(3050f53d-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTMLHRElement
{
properties:
methods:
    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)] void setAttribute([in] BSTR strAttributeName,[in] VARIANT AttributeValue,[defaultvalue(1), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)] VARIANT getAttribute([in] BSTR strAttributeName,[defaultvalue(0), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)] VARIANT_BOOL removeAttribute([in] BSTR strAttributeName,[defaultvalue(1), in] LONG lFlags);
    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] void className(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] BSTR className();
    [propput, id(DISPID_IHTMLELEMENT_ID), bindable] void id(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_ID), bindable] BSTR id();
    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)] BSTR tagName();
    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)] IHTMLElement* parentElement();
    [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable] IHTMLStyle* style();
    [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] void onhelp(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] VARIANT onhelp();
    [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] void onclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] VARIANT onclick();
    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] void ondblclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] VARIANT ondblclick();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] void onkeydown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] VARIANT onkeydown();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] void onkeyup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] VARIANT onkeyup();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] void onkeypress(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] VARIANT onkeypress();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] void onmouseout(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] VARIANT onmouseout();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] void onmouseover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] VARIANT onmouseover();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] void onmousemove(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] VARIANT onmousemove();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] void onmousedown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] VARIANT onmousedown();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] void onmouseup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] VARIANT onmouseup();
    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)] IDispatch* document();
    [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] void title(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] BSTR title();
    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] void language(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] BSTR language();
    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] void onselectstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] VARIANT onselectstart();
    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)] void scrollIntoView([optional, in] VARIANT varargStart);
    [id(DISPID_IHTMLELEMENT_CONTAINS)] VARIANT_BOOL contains([in] IHTMLElement* pChild);
    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable] long sourceIndex();
    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)] VARIANT recordNumber();
    [propput, id(DISPID_IHTMLELEMENT_LANG)] void lang(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANG)] BSTR lang();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)] long offsetLeft();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)] long offsetTop();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)] long offsetWidth();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)] long offsetHeight();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)] IHTMLElement* offsetParent();
    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)] void innerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)] BSTR innerHTML();
    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)] void innerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)] BSTR innerText();
    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)] void outerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)] BSTR outerHTML();
    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)] void outerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)] BSTR outerText();
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)] void insertAdjacentHTML([in] BSTR where,[in] BSTR html);
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)] void insertAdjacentText([in] BSTR where,[in] BSTR text);
    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)] IHTMLElement* parentTextEdit();
    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)] VARIANT_BOOL isTextEdit();
    [id(DISPID_IHTMLELEMENT_CLICK)] void click();
    [propget, id(DISPID_IHTMLELEMENT_FILTERS)] IHTMLFiltersCollection* filters();
    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] void ondragstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] VARIANT ondragstart();
    [id(DISPID_IHTMLELEMENT_TOSTRING)] BSTR toString();
    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] void onbeforeupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] VARIANT onbeforeupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] void onafterupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] VARIANT onafterupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] void onerrorupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] VARIANT onerrorupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] void onrowexit(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] VARIANT onrowexit();
    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] void onrowenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] VARIANT onrowenter();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] void ondatasetchanged(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] VARIANT ondatasetchanged();
    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] void ondataavailable(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] VARIANT ondataavailable();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] void ondatasetcomplete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] VARIANT ondatasetcomplete();
    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] void onfilterchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] VARIANT onfilterchange();
    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)] IDispatch* children();
    [propget, id(DISPID_IHTMLELEMENT_ALL)] IDispatch* all();
    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)] BSTR scopeName();
    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)] void setCapture([defaultvalue(-1), in] VARIANT_BOOL containerCapture);
    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)] void releaseCapture();
    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] void onlosecapture(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] VARIANT onlosecapture();
    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)] BSTR componentFromPoint([in] long x,[in] long y);
    [id(DISPID_IHTMLELEMENT2_DOSCROLL)] void doScroll([optional, in] VARIANT component);
    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] void onscroll(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] VARIANT onscroll();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] void ondrag(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] VARIANT ondrag();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] void ondragend(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] VARIANT ondragend();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] void ondragenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] VARIANT ondragenter();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] void ondragover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] VARIANT ondragover();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] void ondragleave(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] VARIANT ondragleave();
    [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] void ondrop(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] VARIANT ondrop();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] void onbeforecut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] VARIANT onbeforecut();
    [propput, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] void oncut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] VARIANT oncut();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] void onbeforecopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] VARIANT onbeforecopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] void oncopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] VARIANT oncopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] void onbeforepaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] VARIANT onbeforepaste();
    [propput, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] void onpaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] VARIANT onpaste();
    [propget, id(DISPID_IHTMLELEMENT2_CURRENTSTYLE), nonbrowsable] IHTMLCurrentStyle* currentStyle();
    [propput, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] void onpropertychange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] VARIANT onpropertychange();
    [id(DISPID_IHTMLELEMENT2_GETCLIENTRECTS)] IHTMLRectCollection* getClientRects();
    [id(DISPID_IHTMLELEMENT2_GETBOUNDINGCLIENTRECT)] IHTMLRect* getBoundingClientRect();
    [id(DISPID_IHTMLELEMENT2_SETEXPRESSION)] void setExpression([in] BSTR propname,[in] BSTR expression,[defaultvalue(""), in] BSTR language);
    [id(DISPID_IHTMLELEMENT2_GETEXPRESSION)] VARIANT getExpression([in] BSTR propname);
    [id(DISPID_IHTMLELEMENT2_REMOVEEXPRESSION)] VARIANT_BOOL removeExpression([in] BSTR propname);
    [propput, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] void tabIndex(short v);
    [propget, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] short tabIndex();
    [id(DISPID_IHTMLELEMENT2_FOCUS)] void focus();
    [propput, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] void accessKey(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] BSTR accessKey();
    [propput, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] void onblur(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] VARIANT onblur();
    [propput, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] void onfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] VARIANT onfocus();
    [propput, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] void onresize(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] VARIANT onresize();
    [id(DISPID_IHTMLELEMENT2_BLUR)] void blur();
    [id(DISPID_IHTMLELEMENT2_ADDFILTER)] void addFilter([in] IUnknown* pUnk);
    [id(DISPID_IHTMLELEMENT2_REMOVEFILTER)] void removeFilter([in] IUnknown* pUnk);
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTHEIGHT), displaybind, bindable] long clientHeight();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTWIDTH), displaybind, bindable] long clientWidth();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTTOP), displaybind, bindable] long clientTop();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTLEFT), displaybind, bindable] long clientLeft();
    [id(DISPID_IHTMLELEMENT2_ATTACHEVENT)] VARIANT_BOOL attachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [id(DISPID_IHTMLELEMENT2_DETACHEVENT)] void detachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATE)] VARIANT readyState();
    [propput, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] void onreadystatechange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] VARIANT onreadystatechange();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] void onrowsdelete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] VARIANT onrowsdelete();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] void onrowsinserted(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] VARIANT onrowsinserted();
    [propput, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] void oncellchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] VARIANT oncellchange();
    [propput, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] void dir(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] BSTR dir();
    [id(DISPID_IHTMLELEMENT2_CREATECONTROLRANGE)] IDispatch* createControlRange();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLHEIGHT), displaybind, bindable] long scrollHeight();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLWIDTH), displaybind, bindable] long scrollWidth();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] void scrollTop(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] long scrollTop();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] void scrollLeft(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] long scrollLeft();
    [id(DISPID_IHTMLELEMENT2_CLEARATTRIBUTES)] void clearAttributes();
    [id(DISPID_IHTMLELEMENT2_MERGEATTRIBUTES)] void mergeAttributes([in] IHTMLElement* mergeThis);
    [propput, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] void oncontextmenu(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] VARIANT oncontextmenu();
    [id(DISPID_IHTMLELEMENT2_INSERTADJACENTELEMENT)] IHTMLElement* insertAdjacentElement([in] BSTR where,[in] IHTMLElement* insertedElement);
    [id(DISPID_IHTMLELEMENT2_APPLYELEMENT)] IHTMLElement* applyElement([in] IHTMLElement* apply,[in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_GETADJACENTTEXT)] BSTR getAdjacentText([in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_REPLACEADJACENTTEXT)] BSTR replaceAdjacentText([in] BSTR where,[in] BSTR newText);
    [propget, id(DISPID_IHTMLELEMENT2_CANHAVECHILDREN)] VARIANT_BOOL canHaveChildren();
    [id(DISPID_IHTMLELEMENT2_ADDBEHAVIOR)] long addBehavior([in] BSTR bstrUrl,[optional, in] VARIANT* pvarFactory);
    [id(DISPID_IHTMLELEMENT2_REMOVEBEHAVIOR)] VARIANT_BOOL removeBehavior([in] long cookie);
    [propget, id(DISPID_IHTMLELEMENT2_RUNTIMESTYLE), nonbrowsable] IHTMLStyle* runtimeStyle();
    [propget, id(DISPID_IHTMLELEMENT2_BEHAVIORURNS)] IDispatch* behaviorUrns();
    [propput, id(DISPID_IHTMLELEMENT2_TAGURN)] void tagUrn(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_TAGURN)] BSTR tagUrn();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] void onbeforeeditfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] VARIANT onbeforeeditfocus();
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATEVALUE), hidden, restricted] long readyStateValue();
    [id(DISPID_IHTMLELEMENT2_GETELEMENTSBYTAGNAME)] IHTMLElementCollection* getElementsByTagName([in] BSTR v);
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUENUMBER), hidden] long uniqueNumber();
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUEID), hidden] BSTR uniqueID();
    [propget, id(DISPID_IHTMLDOMNODE_NODETYPE)] long nodeType();
    [propget, id(DISPID_IHTMLDOMNODE_PARENTNODE)] IHTMLDOMNode* parentNode();
    [id(DISPID_IHTMLDOMNODE_HASCHILDNODES)] VARIANT_BOOL hasChildNodes();
    [propget, id(DISPID_IHTMLDOMNODE_CHILDNODES)] IDispatch* childNodes();
    [propget, id(DISPID_IHTMLDOMNODE_ATTRIBUTES)] IDispatch* attributes();
    [id(DISPID_IHTMLDOMNODE_INSERTBEFORE)] IHTMLDOMNode* insertBefore([in] IHTMLDOMNode* newChild,[optional, in] VARIANT refChild);
    [id(DISPID_IHTMLDOMNODE_REMOVECHILD)] IHTMLDOMNode* removeChild([in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_REPLACECHILD)] IHTMLDOMNode* replaceChild([in] IHTMLDOMNode* newChild,[in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_CLONENODE)] IHTMLDOMNode* cloneNode([in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_REMOVENODE)] IHTMLDOMNode* removeNode([defaultvalue(0), in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_SWAPNODE)] IHTMLDOMNode* swapNode([in] IHTMLDOMNode* otherNode);
    [id(DISPID_IHTMLDOMNODE_REPLACENODE)] IHTMLDOMNode* replaceNode([in] IHTMLDOMNode* replacement);
    [id(DISPID_IHTMLDOMNODE_APPENDCHILD)] IHTMLDOMNode* appendChild([in] IHTMLDOMNode* newChild);
    [propget, id(DISPID_IHTMLDOMNODE_NODENAME)] BSTR nodeName();
    [propput, id(DISPID_IHTMLDOMNODE_NODEVALUE)] void nodeValue(VARIANT v);
    [propget, id(DISPID_IHTMLDOMNODE_NODEVALUE)] VARIANT nodeValue();
    [propget, id(DISPID_IHTMLDOMNODE_FIRSTCHILD)] IHTMLDOMNode* firstChild();
    [propget, id(DISPID_IHTMLDOMNODE_LASTCHILD)] IHTMLDOMNode* lastChild();
    [propget, id(DISPID_IHTMLDOMNODE_PREVIOUSSIBLING)] IHTMLDOMNode* previousSibling();
    [propget, id(DISPID_IHTMLDOMNODE_NEXTSIBLING)] IHTMLDOMNode* nextSibling();
    [propput, id(DISPID_IHTMLHRELEMENT_ALIGN), displaybind, bindable] void align(BSTR v);
    [propget, id(DISPID_IHTMLHRELEMENT_ALIGN), displaybind, bindable] BSTR align();
    [propput, id(DISPID_IHTMLHRELEMENT_COLOR), displaybind, bindable] void color(VARIANT v);
    [propget, id(DISPID_IHTMLHRELEMENT_COLOR), displaybind, bindable] VARIANT color();
    [propput, id(DISPID_IHTMLHRELEMENT_NOSHADE), bindable] void noShade(VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLHRELEMENT_NOSHADE), bindable] VARIANT_BOOL noShade();
    [propput, id(DISPID_IHTMLHRELEMENT_WIDTH)] void width(VARIANT v);
    [propget, id(DISPID_IHTMLHRELEMENT_WIDTH)] VARIANT width();
    [propput, id(DISPID_IHTMLHRELEMENT_SIZE)] void size(VARIANT v);
    [propget, id(DISPID_IHTMLHRELEMENT_SIZE)] VARIANT size();
};
[
    uuid(3050f252-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLHRElement
{
    [default]           dispinterface DispHTMLHRElement;
    [source, default]   dispinterface HTMLElementEvents;
    [source]            dispinterface HTMLElementEvents2;
                        interface IHTMLElement;
                        interface IHTMLElement2;
                        interface IHTMLUniqueName;
                        interface IHTMLDOMNode;
                        interface IHTMLHRElement;
};
cpp_quote("EXTERN_C const GUID CLSID_CHRElement;")
[
    odl,
    oleautomation,
    dual,
    uuid(3050f1f5-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLParaElement : IDispatch
{
    [propput, id(DISPID_IHTMLPARAELEMENT_ALIGN), bindable] HRESULT align([in] BSTR v);
    [propget, id(DISPID_IHTMLPARAELEMENT_ALIGN), bindable] HRESULT align([retval, out] BSTR * p);
};
[
    hidden,
    uuid(3050f52c-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTMLParaElement
{
properties:
methods:
    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)] void setAttribute([in] BSTR strAttributeName,[in] VARIANT AttributeValue,[defaultvalue(1), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)] VARIANT getAttribute([in] BSTR strAttributeName,[defaultvalue(0), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)] VARIANT_BOOL removeAttribute([in] BSTR strAttributeName,[defaultvalue(1), in] LONG lFlags);
    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] void className(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] BSTR className();
    [propput, id(DISPID_IHTMLELEMENT_ID), bindable] void id(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_ID), bindable] BSTR id();
    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)] BSTR tagName();
    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)] IHTMLElement* parentElement();
    [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable] IHTMLStyle* style();
    [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] void onhelp(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] VARIANT onhelp();
    [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] void onclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] VARIANT onclick();
    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] void ondblclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] VARIANT ondblclick();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] void onkeydown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] VARIANT onkeydown();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] void onkeyup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] VARIANT onkeyup();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] void onkeypress(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] VARIANT onkeypress();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] void onmouseout(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] VARIANT onmouseout();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] void onmouseover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] VARIANT onmouseover();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] void onmousemove(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] VARIANT onmousemove();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] void onmousedown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] VARIANT onmousedown();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] void onmouseup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] VARIANT onmouseup();
    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)] IDispatch* document();
    [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] void title(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] BSTR title();
    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] void language(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] BSTR language();
    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] void onselectstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] VARIANT onselectstart();
    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)] void scrollIntoView([optional, in] VARIANT varargStart);
    [id(DISPID_IHTMLELEMENT_CONTAINS)] VARIANT_BOOL contains([in] IHTMLElement* pChild);
    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable] long sourceIndex();
    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)] VARIANT recordNumber();
    [propput, id(DISPID_IHTMLELEMENT_LANG)] void lang(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANG)] BSTR lang();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)] long offsetLeft();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)] long offsetTop();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)] long offsetWidth();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)] long offsetHeight();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)] IHTMLElement* offsetParent();
    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)] void innerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)] BSTR innerHTML();
    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)] void innerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)] BSTR innerText();
    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)] void outerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)] BSTR outerHTML();
    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)] void outerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)] BSTR outerText();
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)] void insertAdjacentHTML([in] BSTR where,[in] BSTR html);
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)] void insertAdjacentText([in] BSTR where,[in] BSTR text);
    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)] IHTMLElement* parentTextEdit();
    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)] VARIANT_BOOL isTextEdit();
    [id(DISPID_IHTMLELEMENT_CLICK)] void click();
    [propget, id(DISPID_IHTMLELEMENT_FILTERS)] IHTMLFiltersCollection* filters();
    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] void ondragstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] VARIANT ondragstart();
    [id(DISPID_IHTMLELEMENT_TOSTRING)] BSTR toString();
    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] void onbeforeupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] VARIANT onbeforeupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] void onafterupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] VARIANT onafterupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] void onerrorupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] VARIANT onerrorupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] void onrowexit(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] VARIANT onrowexit();
    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] void onrowenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] VARIANT onrowenter();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] void ondatasetchanged(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] VARIANT ondatasetchanged();
    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] void ondataavailable(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] VARIANT ondataavailable();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] void ondatasetcomplete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] VARIANT ondatasetcomplete();
    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] void onfilterchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] VARIANT onfilterchange();
    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)] IDispatch* children();
    [propget, id(DISPID_IHTMLELEMENT_ALL)] IDispatch* all();
    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)] BSTR scopeName();
    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)] void setCapture([defaultvalue(-1), in] VARIANT_BOOL containerCapture);
    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)] void releaseCapture();
    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] void onlosecapture(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] VARIANT onlosecapture();
    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)] BSTR componentFromPoint([in] long x,[in] long y);
    [id(DISPID_IHTMLELEMENT2_DOSCROLL)] void doScroll([optional, in] VARIANT component);
    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] void onscroll(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] VARIANT onscroll();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] void ondrag(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] VARIANT ondrag();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] void ondragend(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] VARIANT ondragend();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] void ondragenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] VARIANT ondragenter();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] void ondragover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] VARIANT ondragover();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] void ondragleave(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] VARIANT ondragleave();
    [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] void ondrop(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] VARIANT ondrop();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] void onbeforecut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] VARIANT onbeforecut();
    [propput, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] void oncut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] VARIANT oncut();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] void onbeforecopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] VARIANT onbeforecopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] void oncopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] VARIANT oncopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] void onbeforepaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] VARIANT onbeforepaste();
    [propput, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] void onpaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] VARIANT onpaste();
    [propget, id(DISPID_IHTMLELEMENT2_CURRENTSTYLE), nonbrowsable] IHTMLCurrentStyle* currentStyle();
    [propput, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] void onpropertychange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] VARIANT onpropertychange();
    [id(DISPID_IHTMLELEMENT2_GETCLIENTRECTS)] IHTMLRectCollection* getClientRects();
    [id(DISPID_IHTMLELEMENT2_GETBOUNDINGCLIENTRECT)] IHTMLRect* getBoundingClientRect();
    [id(DISPID_IHTMLELEMENT2_SETEXPRESSION)] void setExpression([in] BSTR propname,[in] BSTR expression,[defaultvalue(""), in] BSTR language);
    [id(DISPID_IHTMLELEMENT2_GETEXPRESSION)] VARIANT getExpression([in] BSTR propname);
    [id(DISPID_IHTMLELEMENT2_REMOVEEXPRESSION)] VARIANT_BOOL removeExpression([in] BSTR propname);
    [propput, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] void tabIndex(short v);
    [propget, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] short tabIndex();
    [id(DISPID_IHTMLELEMENT2_FOCUS)] void focus();
    [propput, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] void accessKey(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] BSTR accessKey();
    [propput, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] void onblur(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] VARIANT onblur();
    [propput, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] void onfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] VARIANT onfocus();
    [propput, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] void onresize(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] VARIANT onresize();
    [id(DISPID_IHTMLELEMENT2_BLUR)] void blur();
    [id(DISPID_IHTMLELEMENT2_ADDFILTER)] void addFilter([in] IUnknown* pUnk);
    [id(DISPID_IHTMLELEMENT2_REMOVEFILTER)] void removeFilter([in] IUnknown* pUnk);
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTHEIGHT), displaybind, bindable] long clientHeight();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTWIDTH), displaybind, bindable] long clientWidth();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTTOP), displaybind, bindable] long clientTop();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTLEFT), displaybind, bindable] long clientLeft();
    [id(DISPID_IHTMLELEMENT2_ATTACHEVENT)] VARIANT_BOOL attachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [id(DISPID_IHTMLELEMENT2_DETACHEVENT)] void detachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATE)] VARIANT readyState();
    [propput, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] void onreadystatechange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] VARIANT onreadystatechange();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] void onrowsdelete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] VARIANT onrowsdelete();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] void onrowsinserted(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] VARIANT onrowsinserted();
    [propput, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] void oncellchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] VARIANT oncellchange();
    [propput, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] void dir(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] BSTR dir();
    [id(DISPID_IHTMLELEMENT2_CREATECONTROLRANGE)] IDispatch* createControlRange();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLHEIGHT), displaybind, bindable] long scrollHeight();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLWIDTH), displaybind, bindable] long scrollWidth();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] void scrollTop(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] long scrollTop();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] void scrollLeft(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] long scrollLeft();
    [id(DISPID_IHTMLELEMENT2_CLEARATTRIBUTES)] void clearAttributes();
    [id(DISPID_IHTMLELEMENT2_MERGEATTRIBUTES)] void mergeAttributes([in] IHTMLElement* mergeThis);
    [propput, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] void oncontextmenu(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] VARIANT oncontextmenu();
    [id(DISPID_IHTMLELEMENT2_INSERTADJACENTELEMENT)] IHTMLElement* insertAdjacentElement([in] BSTR where,[in] IHTMLElement* insertedElement);
    [id(DISPID_IHTMLELEMENT2_APPLYELEMENT)] IHTMLElement* applyElement([in] IHTMLElement* apply,[in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_GETADJACENTTEXT)] BSTR getAdjacentText([in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_REPLACEADJACENTTEXT)] BSTR replaceAdjacentText([in] BSTR where,[in] BSTR newText);
    [propget, id(DISPID_IHTMLELEMENT2_CANHAVECHILDREN)] VARIANT_BOOL canHaveChildren();
    [id(DISPID_IHTMLELEMENT2_ADDBEHAVIOR)] long addBehavior([in] BSTR bstrUrl,[optional, in] VARIANT* pvarFactory);
    [id(DISPID_IHTMLELEMENT2_REMOVEBEHAVIOR)] VARIANT_BOOL removeBehavior([in] long cookie);
    [propget, id(DISPID_IHTMLELEMENT2_RUNTIMESTYLE), nonbrowsable] IHTMLStyle* runtimeStyle();
    [propget, id(DISPID_IHTMLELEMENT2_BEHAVIORURNS)] IDispatch* behaviorUrns();
    [propput, id(DISPID_IHTMLELEMENT2_TAGURN)] void tagUrn(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_TAGURN)] BSTR tagUrn();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] void onbeforeeditfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] VARIANT onbeforeeditfocus();
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATEVALUE), hidden, restricted] long readyStateValue();
    [id(DISPID_IHTMLELEMENT2_GETELEMENTSBYTAGNAME)] IHTMLElementCollection* getElementsByTagName([in] BSTR v);
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUENUMBER), hidden] long uniqueNumber();
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUEID), hidden] BSTR uniqueID();
    [propget, id(DISPID_IHTMLDOMNODE_NODETYPE)] long nodeType();
    [propget, id(DISPID_IHTMLDOMNODE_PARENTNODE)] IHTMLDOMNode* parentNode();
    [id(DISPID_IHTMLDOMNODE_HASCHILDNODES)] VARIANT_BOOL hasChildNodes();
    [propget, id(DISPID_IHTMLDOMNODE_CHILDNODES)] IDispatch* childNodes();
    [propget, id(DISPID_IHTMLDOMNODE_ATTRIBUTES)] IDispatch* attributes();
    [id(DISPID_IHTMLDOMNODE_INSERTBEFORE)] IHTMLDOMNode* insertBefore([in] IHTMLDOMNode* newChild,[optional, in] VARIANT refChild);
    [id(DISPID_IHTMLDOMNODE_REMOVECHILD)] IHTMLDOMNode* removeChild([in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_REPLACECHILD)] IHTMLDOMNode* replaceChild([in] IHTMLDOMNode* newChild,[in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_CLONENODE)] IHTMLDOMNode* cloneNode([in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_REMOVENODE)] IHTMLDOMNode* removeNode([defaultvalue(0), in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_SWAPNODE)] IHTMLDOMNode* swapNode([in] IHTMLDOMNode* otherNode);
    [id(DISPID_IHTMLDOMNODE_REPLACENODE)] IHTMLDOMNode* replaceNode([in] IHTMLDOMNode* replacement);
    [id(DISPID_IHTMLDOMNODE_APPENDCHILD)] IHTMLDOMNode* appendChild([in] IHTMLDOMNode* newChild);
    [propget, id(DISPID_IHTMLDOMNODE_NODENAME)] BSTR nodeName();
    [propput, id(DISPID_IHTMLDOMNODE_NODEVALUE)] void nodeValue(VARIANT v);
    [propget, id(DISPID_IHTMLDOMNODE_NODEVALUE)] VARIANT nodeValue();
    [propget, id(DISPID_IHTMLDOMNODE_FIRSTCHILD)] IHTMLDOMNode* firstChild();
    [propget, id(DISPID_IHTMLDOMNODE_LASTCHILD)] IHTMLDOMNode* lastChild();
    [propget, id(DISPID_IHTMLDOMNODE_PREVIOUSSIBLING)] IHTMLDOMNode* previousSibling();
    [propget, id(DISPID_IHTMLDOMNODE_NEXTSIBLING)] IHTMLDOMNode* nextSibling();
    [propput, id(DISPID_IHTMLBLOCKELEMENT_CLEAR), displaybind, bindable] void clear(BSTR v);
    [propget, id(DISPID_IHTMLBLOCKELEMENT_CLEAR), displaybind, bindable] BSTR clear();
    [propput, id(DISPID_IHTMLPARAELEMENT_ALIGN), bindable] void align(BSTR v);
    [propget, id(DISPID_IHTMLPARAELEMENT_ALIGN), bindable] BSTR align();
};
[
    uuid(3050f26f-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLParaElement
{
    [default]           dispinterface DispHTMLParaElement;
    [source, default]   dispinterface HTMLElementEvents;
    [source]            dispinterface HTMLElementEvents2;
                        interface IHTMLElement;
                        interface IHTMLElement2;
                        interface IHTMLUniqueName;
                        interface IHTMLDOMNode;
                        interface IHTMLBlockElement;
                        interface IHTMLParaElement;
};
cpp_quote("EXTERN_C const GUID CLSID_CParaElement;")
[
    odl,
    oleautomation,
    dual,
    uuid(3050f21f-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLElementCollection : IDispatch
{
    [id(DISPID_IHTMLELEMENTCOLLECTION_TOSTRING)] HRESULT toString([retval, out] BSTR* String);
    [propput, id(DISPID_IHTMLELEMENTCOLLECTION_LENGTH)] HRESULT length([in] long v);
    [propget, id(DISPID_IHTMLELEMENTCOLLECTION_LENGTH)] HRESULT length([retval, out] long * p);
    [propget, id(DISPID_IHTMLELEMENTCOLLECTION__NEWENUM), hidden, restricted] HRESULT _newEnum([retval, out] IUnknown* * p);
    [id(DISPID_IHTMLELEMENTCOLLECTION_ITEM)] HRESULT item([optional, in] VARIANT name,[optional, in] VARIANT index,[retval, out] IDispatch** pdisp);
    [id(DISPID_IHTMLELEMENTCOLLECTION_TAGS)] HRESULT tags([in] VARIANT tagName,[retval, out] IDispatch** pdisp);
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f5ee-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLElementCollection2 : IDispatch
{
    [id(DISPID_IHTMLELEMENTCOLLECTION2_URNS)] HRESULT urns([in] VARIANT urn,[retval, out] IDispatch** pdisp);
};
[
    hidden,
    uuid(3050f56b-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTMLElementCollection
{
properties:
methods:
    [id(DISPID_IHTMLELEMENTCOLLECTION_TOSTRING)] BSTR toString();
    [propput, id(DISPID_IHTMLELEMENTCOLLECTION_LENGTH)] void length(long v);
    [propget, id(DISPID_IHTMLELEMENTCOLLECTION_LENGTH)] long length();
    [propget, id(DISPID_IHTMLELEMENTCOLLECTION__NEWENUM), hidden, restricted] IUnknown* _newEnum();
    [id(DISPID_IHTMLELEMENTCOLLECTION_ITEM)] IDispatch* item([optional, in] VARIANT name,[optional, in] VARIANT index);
    [id(DISPID_IHTMLELEMENTCOLLECTION_TAGS)] IDispatch* tags([in] VARIANT tagName);
    [id(DISPID_IHTMLELEMENTCOLLECTION2_URNS)] IDispatch* urns([in] VARIANT urn);
};
[
    uuid(3050f4cb-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLElementCollection
{
    [default]           dispinterface DispHTMLElementCollection;
                        interface IHTMLElementCollection;
                        interface IHTMLElementCollection2;
};
cpp_quote("EXTERN_C const GUID CLSID_CElementCollection;")
[
    odl,
    oleautomation,
    dual,
    uuid(3050f1f6-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLHeaderElement : IDispatch
{
    [propput, id(DISPID_IHTMLHEADERELEMENT_ALIGN), bindable] HRESULT align([in] BSTR v);
    [propget, id(DISPID_IHTMLHEADERELEMENT_ALIGN), bindable] HRESULT align([retval, out] BSTR * p);
};
[
    hidden,
    uuid(3050f515-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTMLHeaderElement
{
properties:
methods:
    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)] void setAttribute([in] BSTR strAttributeName,[in] VARIANT AttributeValue,[defaultvalue(1), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)] VARIANT getAttribute([in] BSTR strAttributeName,[defaultvalue(0), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)] VARIANT_BOOL removeAttribute([in] BSTR strAttributeName,[defaultvalue(1), in] LONG lFlags);
    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] void className(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] BSTR className();
    [propput, id(DISPID_IHTMLELEMENT_ID), bindable] void id(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_ID), bindable] BSTR id();
    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)] BSTR tagName();
    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)] IHTMLElement* parentElement();
    [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable] IHTMLStyle* style();
    [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] void onhelp(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] VARIANT onhelp();
    [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] void onclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] VARIANT onclick();
    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] void ondblclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] VARIANT ondblclick();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] void onkeydown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] VARIANT onkeydown();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] void onkeyup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] VARIANT onkeyup();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] void onkeypress(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] VARIANT onkeypress();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] void onmouseout(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] VARIANT onmouseout();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] void onmouseover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] VARIANT onmouseover();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] void onmousemove(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] VARIANT onmousemove();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] void onmousedown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] VARIANT onmousedown();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] void onmouseup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] VARIANT onmouseup();
    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)] IDispatch* document();
    [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] void title(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] BSTR title();
    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] void language(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] BSTR language();
    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] void onselectstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] VARIANT onselectstart();
    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)] void scrollIntoView([optional, in] VARIANT varargStart);
    [id(DISPID_IHTMLELEMENT_CONTAINS)] VARIANT_BOOL contains([in] IHTMLElement* pChild);
    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable] long sourceIndex();
    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)] VARIANT recordNumber();
    [propput, id(DISPID_IHTMLELEMENT_LANG)] void lang(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANG)] BSTR lang();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)] long offsetLeft();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)] long offsetTop();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)] long offsetWidth();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)] long offsetHeight();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)] IHTMLElement* offsetParent();
    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)] void innerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)] BSTR innerHTML();
    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)] void innerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)] BSTR innerText();
    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)] void outerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)] BSTR outerHTML();
    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)] void outerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)] BSTR outerText();
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)] void insertAdjacentHTML([in] BSTR where,[in] BSTR html);
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)] void insertAdjacentText([in] BSTR where,[in] BSTR text);
    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)] IHTMLElement* parentTextEdit();
    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)] VARIANT_BOOL isTextEdit();
    [id(DISPID_IHTMLELEMENT_CLICK)] void click();
    [propget, id(DISPID_IHTMLELEMENT_FILTERS)] IHTMLFiltersCollection* filters();
    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] void ondragstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] VARIANT ondragstart();
    [id(DISPID_IHTMLELEMENT_TOSTRING)] BSTR toString();
    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] void onbeforeupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] VARIANT onbeforeupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] void onafterupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] VARIANT onafterupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] void onerrorupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] VARIANT onerrorupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] void onrowexit(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] VARIANT onrowexit();
    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] void onrowenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] VARIANT onrowenter();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] void ondatasetchanged(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] VARIANT ondatasetchanged();
    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] void ondataavailable(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] VARIANT ondataavailable();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] void ondatasetcomplete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] VARIANT ondatasetcomplete();
    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] void onfilterchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] VARIANT onfilterchange();
    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)] IDispatch* children();
    [propget, id(DISPID_IHTMLELEMENT_ALL)] IDispatch* all();
    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)] BSTR scopeName();
    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)] void setCapture([defaultvalue(-1), in] VARIANT_BOOL containerCapture);
    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)] void releaseCapture();
    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] void onlosecapture(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] VARIANT onlosecapture();
    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)] BSTR componentFromPoint([in] long x,[in] long y);
    [id(DISPID_IHTMLELEMENT2_DOSCROLL)] void doScroll([optional, in] VARIANT component);
    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] void onscroll(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] VARIANT onscroll();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] void ondrag(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] VARIANT ondrag();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] void ondragend(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] VARIANT ondragend();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] void ondragenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] VARIANT ondragenter();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] void ondragover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] VARIANT ondragover();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] void ondragleave(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] VARIANT ondragleave();
    [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] void ondrop(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] VARIANT ondrop();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] void onbeforecut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] VARIANT onbeforecut();
    [propput, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] void oncut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] VARIANT oncut();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] void onbeforecopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] VARIANT onbeforecopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] void oncopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] VARIANT oncopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] void onbeforepaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] VARIANT onbeforepaste();
    [propput, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] void onpaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] VARIANT onpaste();
    [propget, id(DISPID_IHTMLELEMENT2_CURRENTSTYLE), nonbrowsable] IHTMLCurrentStyle* currentStyle();
    [propput, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] void onpropertychange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] VARIANT onpropertychange();
    [id(DISPID_IHTMLELEMENT2_GETCLIENTRECTS)] IHTMLRectCollection* getClientRects();
    [id(DISPID_IHTMLELEMENT2_GETBOUNDINGCLIENTRECT)] IHTMLRect* getBoundingClientRect();
    [id(DISPID_IHTMLELEMENT2_SETEXPRESSION)] void setExpression([in] BSTR propname,[in] BSTR expression,[defaultvalue(""), in] BSTR language);
    [id(DISPID_IHTMLELEMENT2_GETEXPRESSION)] VARIANT getExpression([in] BSTR propname);
    [id(DISPID_IHTMLELEMENT2_REMOVEEXPRESSION)] VARIANT_BOOL removeExpression([in] BSTR propname);
    [propput, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] void tabIndex(short v);
    [propget, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] short tabIndex();
    [id(DISPID_IHTMLELEMENT2_FOCUS)] void focus();
    [propput, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] void accessKey(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] BSTR accessKey();
    [propput, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] void onblur(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] VARIANT onblur();
    [propput, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] void onfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] VARIANT onfocus();
    [propput, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] void onresize(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] VARIANT onresize();
    [id(DISPID_IHTMLELEMENT2_BLUR)] void blur();
    [id(DISPID_IHTMLELEMENT2_ADDFILTER)] void addFilter([in] IUnknown* pUnk);
    [id(DISPID_IHTMLELEMENT2_REMOVEFILTER)] void removeFilter([in] IUnknown* pUnk);
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTHEIGHT), displaybind, bindable] long clientHeight();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTWIDTH), displaybind, bindable] long clientWidth();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTTOP), displaybind, bindable] long clientTop();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTLEFT), displaybind, bindable] long clientLeft();
    [id(DISPID_IHTMLELEMENT2_ATTACHEVENT)] VARIANT_BOOL attachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [id(DISPID_IHTMLELEMENT2_DETACHEVENT)] void detachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATE)] VARIANT readyState();
    [propput, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] void onreadystatechange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] VARIANT onreadystatechange();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] void onrowsdelete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] VARIANT onrowsdelete();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] void onrowsinserted(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] VARIANT onrowsinserted();
    [propput, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] void oncellchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] VARIANT oncellchange();
    [propput, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] void dir(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] BSTR dir();
    [id(DISPID_IHTMLELEMENT2_CREATECONTROLRANGE)] IDispatch* createControlRange();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLHEIGHT), displaybind, bindable] long scrollHeight();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLWIDTH), displaybind, bindable] long scrollWidth();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] void scrollTop(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] long scrollTop();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] void scrollLeft(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] long scrollLeft();
    [id(DISPID_IHTMLELEMENT2_CLEARATTRIBUTES)] void clearAttributes();
    [id(DISPID_IHTMLELEMENT2_MERGEATTRIBUTES)] void mergeAttributes([in] IHTMLElement* mergeThis);
    [propput, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] void oncontextmenu(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] VARIANT oncontextmenu();
    [id(DISPID_IHTMLELEMENT2_INSERTADJACENTELEMENT)] IHTMLElement* insertAdjacentElement([in] BSTR where,[in] IHTMLElement* insertedElement);
    [id(DISPID_IHTMLELEMENT2_APPLYELEMENT)] IHTMLElement* applyElement([in] IHTMLElement* apply,[in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_GETADJACENTTEXT)] BSTR getAdjacentText([in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_REPLACEADJACENTTEXT)] BSTR replaceAdjacentText([in] BSTR where,[in] BSTR newText);
    [propget, id(DISPID_IHTMLELEMENT2_CANHAVECHILDREN)] VARIANT_BOOL canHaveChildren();
    [id(DISPID_IHTMLELEMENT2_ADDBEHAVIOR)] long addBehavior([in] BSTR bstrUrl,[optional, in] VARIANT* pvarFactory);
    [id(DISPID_IHTMLELEMENT2_REMOVEBEHAVIOR)] VARIANT_BOOL removeBehavior([in] long cookie);
    [propget, id(DISPID_IHTMLELEMENT2_RUNTIMESTYLE), nonbrowsable] IHTMLStyle* runtimeStyle();
    [propget, id(DISPID_IHTMLELEMENT2_BEHAVIORURNS)] IDispatch* behaviorUrns();
    [propput, id(DISPID_IHTMLELEMENT2_TAGURN)] void tagUrn(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_TAGURN)] BSTR tagUrn();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] void onbeforeeditfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] VARIANT onbeforeeditfocus();
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATEVALUE), hidden, restricted] long readyStateValue();
    [id(DISPID_IHTMLELEMENT2_GETELEMENTSBYTAGNAME)] IHTMLElementCollection* getElementsByTagName([in] BSTR v);
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUENUMBER), hidden] long uniqueNumber();
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUEID), hidden] BSTR uniqueID();
    [propget, id(DISPID_IHTMLDOMNODE_NODETYPE)] long nodeType();
    [propget, id(DISPID_IHTMLDOMNODE_PARENTNODE)] IHTMLDOMNode* parentNode();
    [id(DISPID_IHTMLDOMNODE_HASCHILDNODES)] VARIANT_BOOL hasChildNodes();
    [propget, id(DISPID_IHTMLDOMNODE_CHILDNODES)] IDispatch* childNodes();
    [propget, id(DISPID_IHTMLDOMNODE_ATTRIBUTES)] IDispatch* attributes();
    [id(DISPID_IHTMLDOMNODE_INSERTBEFORE)] IHTMLDOMNode* insertBefore([in] IHTMLDOMNode* newChild,[optional, in] VARIANT refChild);
    [id(DISPID_IHTMLDOMNODE_REMOVECHILD)] IHTMLDOMNode* removeChild([in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_REPLACECHILD)] IHTMLDOMNode* replaceChild([in] IHTMLDOMNode* newChild,[in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_CLONENODE)] IHTMLDOMNode* cloneNode([in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_REMOVENODE)] IHTMLDOMNode* removeNode([defaultvalue(0), in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_SWAPNODE)] IHTMLDOMNode* swapNode([in] IHTMLDOMNode* otherNode);
    [id(DISPID_IHTMLDOMNODE_REPLACENODE)] IHTMLDOMNode* replaceNode([in] IHTMLDOMNode* replacement);
    [id(DISPID_IHTMLDOMNODE_APPENDCHILD)] IHTMLDOMNode* appendChild([in] IHTMLDOMNode* newChild);
    [propget, id(DISPID_IHTMLDOMNODE_NODENAME)] BSTR nodeName();
    [propput, id(DISPID_IHTMLDOMNODE_NODEVALUE)] void nodeValue(VARIANT v);
    [propget, id(DISPID_IHTMLDOMNODE_NODEVALUE)] VARIANT nodeValue();
    [propget, id(DISPID_IHTMLDOMNODE_FIRSTCHILD)] IHTMLDOMNode* firstChild();
    [propget, id(DISPID_IHTMLDOMNODE_LASTCHILD)] IHTMLDOMNode* lastChild();
    [propget, id(DISPID_IHTMLDOMNODE_PREVIOUSSIBLING)] IHTMLDOMNode* previousSibling();
    [propget, id(DISPID_IHTMLDOMNODE_NEXTSIBLING)] IHTMLDOMNode* nextSibling();
    [propput, id(DISPID_IHTMLBLOCKELEMENT_CLEAR), displaybind, bindable] void clear(BSTR v);
    [propget, id(DISPID_IHTMLBLOCKELEMENT_CLEAR), displaybind, bindable] BSTR clear();
    [propput, id(DISPID_IHTMLHEADERELEMENT_ALIGN), bindable] void align(BSTR v);
    [propget, id(DISPID_IHTMLHEADERELEMENT_ALIGN), bindable] BSTR align();
};
[
    uuid(3050f27a-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLHeaderElement
{
    [default]           dispinterface DispHTMLHeaderElement;
    [source, default]   dispinterface HTMLElementEvents;
    [source]            dispinterface HTMLElementEvents2;
                        interface IHTMLElement;
                        interface IHTMLElement2;
                        interface IHTMLUniqueName;
                        interface IHTMLDOMNode;
                        interface IHTMLBlockElement;
                        interface IHTMLHeaderElement;
};
cpp_quote("EXTERN_C const GUID CLSID_CHeaderElement;")
[
    hidden,
    uuid(3050f622-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface HTMLSelectElementEvents2
{
properties:
methods:
    [id(DISPID_HTMLELEMENTEVENTS2_ONHELP)] VARIANT_BOOL onhelp([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCLICK)] VARIANT_BOOL onclick([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDBLCLICK)] VARIANT_BOOL ondblclick([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONKEYPRESS)] VARIANT_BOOL onkeypress([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONKEYDOWN)] void onkeydown([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONKEYUP)] void onkeyup([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEOUT)] void onmouseout([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEOVER)] void onmouseover([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEMOVE)] void onmousemove([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEDOWN)] void onmousedown([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEUP)] void onmouseup([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONSELECTSTART)] VARIANT_BOOL onselectstart([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONFILTERCHANGE)] void onfilterchange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGSTART)] VARIANT_BOOL ondragstart([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFOREUPDATE)] VARIANT_BOOL onbeforeupdate([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONAFTERUPDATE)] void onafterupdate([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONERRORUPDATE)] VARIANT_BOOL onerrorupdate([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWEXIT)] VARIANT_BOOL onrowexit([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWENTER)] void onrowenter([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDATASETCHANGED)] void ondatasetchanged([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDATAAVAILABLE)] void ondataavailable([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDATASETCOMPLETE)] void ondatasetcomplete([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONLOSECAPTURE)] void onlosecapture([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONPROPERTYCHANGE)] void onpropertychange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONSCROLL)] void onscroll([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONFOCUS)] void onfocus([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBLUR)] void onblur([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONRESIZE)] void onresize([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAG)] VARIANT_BOOL ondrag([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGEND)] void ondragend([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGENTER)] VARIANT_BOOL ondragenter([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGOVER)] VARIANT_BOOL ondragover([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGLEAVE)] void ondragleave([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDROP)] VARIANT_BOOL ondrop([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFORECUT)] VARIANT_BOOL onbeforecut([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCUT)] VARIANT_BOOL oncut([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFORECOPY)] VARIANT_BOOL onbeforecopy([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCOPY)] VARIANT_BOOL oncopy([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFOREPASTE)] VARIANT_BOOL onbeforepaste([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONPASTE)] VARIANT_BOOL onpaste([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCONTEXTMENU)] VARIANT_BOOL oncontextmenu([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWSDELETE)] void onrowsdelete([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWSINSERTED)] void onrowsinserted([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCELLCHANGE)] void oncellchange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONREADYSTATECHANGE)] void onreadystatechange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLSELECTELEMENTEVENTS2_ONCHANGE)] void onchange([in] IHTMLEventObj* pEvtObj);
};
[
    hidden,
    uuid(3050f302-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface HTMLSelectElementEvents
{
properties:
methods:
    [id(DISPID_HTMLELEMENTEVENTS_ONHELP)] VARIANT_BOOL onhelp();
    [id(DISPID_HTMLELEMENTEVENTS_ONCLICK)] VARIANT_BOOL onclick();
    [id(DISPID_HTMLELEMENTEVENTS_ONDBLCLICK)] VARIANT_BOOL ondblclick();
    [id(DISPID_HTMLELEMENTEVENTS_ONKEYPRESS)] VARIANT_BOOL onkeypress();
    [id(DISPID_HTMLELEMENTEVENTS_ONKEYDOWN)] void onkeydown();
    [id(DISPID_HTMLELEMENTEVENTS_ONKEYUP)] void onkeyup();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEOUT)] void onmouseout();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEOVER)] void onmouseover();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEMOVE)] void onmousemove();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEDOWN)] void onmousedown();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEUP)] void onmouseup();
    [id(DISPID_HTMLELEMENTEVENTS_ONSELECTSTART)] VARIANT_BOOL onselectstart();
    [id(DISPID_HTMLELEMENTEVENTS_ONFILTERCHANGE)] void onfilterchange();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGSTART)] VARIANT_BOOL ondragstart();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREUPDATE)] VARIANT_BOOL onbeforeupdate();
    [id(DISPID_HTMLELEMENTEVENTS_ONAFTERUPDATE)] void onafterupdate();
    [id(DISPID_HTMLELEMENTEVENTS_ONERRORUPDATE)] VARIANT_BOOL onerrorupdate();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWEXIT)] VARIANT_BOOL onrowexit();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWENTER)] void onrowenter();
    [id(DISPID_HTMLELEMENTEVENTS_ONDATASETCHANGED)] void ondatasetchanged();
    [id(DISPID_HTMLELEMENTEVENTS_ONDATAAVAILABLE)] void ondataavailable();
    [id(DISPID_HTMLELEMENTEVENTS_ONDATASETCOMPLETE)] void ondatasetcomplete();
    [id(DISPID_HTMLELEMENTEVENTS_ONLOSECAPTURE)] void onlosecapture();
    [id(DISPID_HTMLELEMENTEVENTS_ONPROPERTYCHANGE)] void onpropertychange();
    [id(DISPID_HTMLELEMENTEVENTS_ONSCROLL)] void onscroll();
    [id(DISPID_HTMLELEMENTEVENTS_ONFOCUS)] void onfocus();
    [id(DISPID_HTMLELEMENTEVENTS_ONBLUR)] void onblur();
    [id(DISPID_HTMLELEMENTEVENTS_ONRESIZE)] void onresize();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAG)] VARIANT_BOOL ondrag();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGEND)] void ondragend();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGENTER)] VARIANT_BOOL ondragenter();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGOVER)] VARIANT_BOOL ondragover();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGLEAVE)] void ondragleave();
    [id(DISPID_HTMLELEMENTEVENTS_ONDROP)] VARIANT_BOOL ondrop();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFORECUT)] VARIANT_BOOL onbeforecut();
    [id(DISPID_HTMLELEMENTEVENTS_ONCUT)] VARIANT_BOOL oncut();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFORECOPY)] VARIANT_BOOL onbeforecopy();
    [id(DISPID_HTMLELEMENTEVENTS_ONCOPY)] VARIANT_BOOL oncopy();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREPASTE)] VARIANT_BOOL onbeforepaste();
    [id(DISPID_HTMLELEMENTEVENTS_ONPASTE)] VARIANT_BOOL onpaste();
    [id(DISPID_HTMLELEMENTEVENTS_ONCONTEXTMENU)] VARIANT_BOOL oncontextmenu();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWSDELETE)] void onrowsdelete();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWSINSERTED)] void onrowsinserted();
    [id(DISPID_HTMLELEMENTEVENTS_ONCELLCHANGE)] void oncellchange();
    [id(DISPID_HTMLELEMENTEVENTS_ONREADYSTATECHANGE)] void onreadystatechange();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREEDITFOCUS)] void onbeforeeditfocus();
    [id(DISPID_HTMLSELECTELEMENTEVENTS_ONCHANGE)] void onchange();
};
typedef enum _htmlSelectType
{
    htmlSelectTypeSelectOne = 1,
    htmlSelectTypeSelectMultiple = 2,
    htmlSelectType_Max = 2147483647L
} htmlSelectType;

[
    odl,
    oleautomation,
    dual,
    uuid(3050f244-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLSelectElement : IDispatch
{
    [propput, id(DISPID_IHTMLSELECTELEMENT_SIZE), displaybind, bindable] HRESULT size([in] long v);
    [propget, id(DISPID_IHTMLSELECTELEMENT_SIZE), displaybind, bindable] HRESULT size([retval, out] long * p);
    [propput, id(DISPID_IHTMLSELECTELEMENT_MULTIPLE), displaybind, bindable] HRESULT multiple([in] VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLSELECTELEMENT_MULTIPLE), displaybind, bindable] HRESULT multiple([retval, out] VARIANT_BOOL * p);
    [propput, id(DISPID_IHTMLSELECTELEMENT_NAME), displaybind, bindable] HRESULT name([in] BSTR v);
    [propget, id(DISPID_IHTMLSELECTELEMENT_NAME), displaybind, bindable] HRESULT name([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLSELECTELEMENT_OPTIONS)] HRESULT options([retval, out] IDispatch* * p);
    [propput, id(DISPID_IHTMLSELECTELEMENT_ONCHANGE), displaybind, bindable] HRESULT onchange([in] VARIANT v);
    [propget, id(DISPID_IHTMLSELECTELEMENT_ONCHANGE), displaybind, bindable] HRESULT onchange([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLSELECTELEMENT_SELECTEDINDEX)] HRESULT selectedIndex([in] long v);
    [propget, id(DISPID_IHTMLSELECTELEMENT_SELECTEDINDEX)] HRESULT selectedIndex([retval, out] long * p);
    [propget, id(DISPID_IHTMLSELECTELEMENT_TYPE), displaybind, bindable] HRESULT type([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLSELECTELEMENT_VALUE), displaybind, bindable] HRESULT value([in] BSTR v);
    [propget, id(DISPID_IHTMLSELECTELEMENT_VALUE), displaybind, bindable] HRESULT value([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLSELECTELEMENT_DISABLED), displaybind, bindable] HRESULT disabled([in] VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLSELECTELEMENT_DISABLED), displaybind, bindable] HRESULT disabled([retval, out] VARIANT_BOOL * p);
    [propget, id(DISPID_IHTMLSELECTELEMENT_FORM)] HRESULT form([retval, out] IHTMLFormElement* * p);
    [id(DISPID_IHTMLSELECTELEMENT_ADD)] HRESULT add([in] IHTMLElement* element,[optional, in] VARIANT before);
    [id(DISPID_IHTMLSELECTELEMENT_REMOVE)] HRESULT remove([defaultvalue(-1), in] long index);
    [propput, id(DISPID_IHTMLSELECTELEMENT_LENGTH)] HRESULT length([in] long v);
    [propget, id(DISPID_IHTMLSELECTELEMENT_LENGTH)] HRESULT length([retval, out] long * p);
    [propget, id(DISPID_IHTMLSELECTELEMENT__NEWENUM), hidden, restricted] HRESULT _newEnum([retval, out] IUnknown* * p);
    [id(DISPID_IHTMLSELECTELEMENT_ITEM)] HRESULT item([optional, in] VARIANT name,[optional, in] VARIANT index,[retval, out] IDispatch** pdisp);
    [id(DISPID_IHTMLSELECTELEMENT_TAGS)] HRESULT tags([in] VARIANT tagName,[retval, out] IDispatch** pdisp);
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f5ed-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLSelectElement2 : IDispatch
{
    [id(DISPID_IHTMLSELECTELEMENT2_URNS)] HRESULT urns([in] VARIANT urn,[retval, out] IDispatch** pdisp);
};
[
    hidden,
    uuid(3050f531-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTMLSelectElement
{
properties:
methods:
    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)] void setAttribute([in] BSTR strAttributeName,[in] VARIANT AttributeValue,[defaultvalue(1), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)] VARIANT getAttribute([in] BSTR strAttributeName,[defaultvalue(0), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)] VARIANT_BOOL removeAttribute([in] BSTR strAttributeName,[defaultvalue(1), in] LONG lFlags);
    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] void className(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] BSTR className();
    [propput, id(DISPID_IHTMLELEMENT_ID), bindable] void id(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_ID), bindable] BSTR id();
    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)] BSTR tagName();
    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)] IHTMLElement* parentElement();
    [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable] IHTMLStyle* style();
    [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] void onhelp(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] VARIANT onhelp();
    [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] void onclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] VARIANT onclick();
    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] void ondblclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] VARIANT ondblclick();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] void onkeydown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] VARIANT onkeydown();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] void onkeyup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] VARIANT onkeyup();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] void onkeypress(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] VARIANT onkeypress();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] void onmouseout(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] VARIANT onmouseout();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] void onmouseover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] VARIANT onmouseover();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] void onmousemove(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] VARIANT onmousemove();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] void onmousedown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] VARIANT onmousedown();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] void onmouseup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] VARIANT onmouseup();
    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)] IDispatch* document();
    [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] void title(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] BSTR title();
    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] void language(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] BSTR language();
    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] void onselectstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] VARIANT onselectstart();
    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)] void scrollIntoView([optional, in] VARIANT varargStart);
    [id(DISPID_IHTMLELEMENT_CONTAINS)] VARIANT_BOOL contains([in] IHTMLElement* pChild);
    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable] long sourceIndex();
    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)] VARIANT recordNumber();
    [propput, id(DISPID_IHTMLELEMENT_LANG)] void lang(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANG)] BSTR lang();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)] long offsetLeft();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)] long offsetTop();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)] long offsetWidth();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)] long offsetHeight();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)] IHTMLElement* offsetParent();
    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)] void innerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)] BSTR innerHTML();
    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)] void innerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)] BSTR innerText();
    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)] void outerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)] BSTR outerHTML();
    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)] void outerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)] BSTR outerText();
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)] void insertAdjacentHTML([in] BSTR where,[in] BSTR html);
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)] void insertAdjacentText([in] BSTR where,[in] BSTR text);
    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)] IHTMLElement* parentTextEdit();
    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)] VARIANT_BOOL isTextEdit();
    [id(DISPID_IHTMLELEMENT_CLICK)] void click();
    [propget, id(DISPID_IHTMLELEMENT_FILTERS)] IHTMLFiltersCollection* filters();
    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] void ondragstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] VARIANT ondragstart();
    [id(DISPID_IHTMLELEMENT_TOSTRING)] BSTR toString();
    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] void onbeforeupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] VARIANT onbeforeupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] void onafterupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] VARIANT onafterupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] void onerrorupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] VARIANT onerrorupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] void onrowexit(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] VARIANT onrowexit();
    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] void onrowenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] VARIANT onrowenter();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] void ondatasetchanged(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] VARIANT ondatasetchanged();
    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] void ondataavailable(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] VARIANT ondataavailable();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] void ondatasetcomplete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] VARIANT ondatasetcomplete();
    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] void onfilterchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] VARIANT onfilterchange();
    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)] IDispatch* children();
    [propget, id(DISPID_IHTMLELEMENT_ALL)] IDispatch* all();
    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)] BSTR scopeName();
    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)] void setCapture([defaultvalue(-1), in] VARIANT_BOOL containerCapture);
    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)] void releaseCapture();
    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] void onlosecapture(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] VARIANT onlosecapture();
    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)] BSTR componentFromPoint([in] long x,[in] long y);
    [id(DISPID_IHTMLELEMENT2_DOSCROLL)] void doScroll([optional, in] VARIANT component);
    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] void onscroll(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] VARIANT onscroll();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] void ondrag(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] VARIANT ondrag();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] void ondragend(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] VARIANT ondragend();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] void ondragenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] VARIANT ondragenter();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] void ondragover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] VARIANT ondragover();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] void ondragleave(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] VARIANT ondragleave();
    [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] void ondrop(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] VARIANT ondrop();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] void onbeforecut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] VARIANT onbeforecut();
    [propput, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] void oncut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] VARIANT oncut();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] void onbeforecopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] VARIANT onbeforecopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] void oncopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] VARIANT oncopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] void onbeforepaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] VARIANT onbeforepaste();
    [propput, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] void onpaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] VARIANT onpaste();
    [propget, id(DISPID_IHTMLELEMENT2_CURRENTSTYLE), nonbrowsable] IHTMLCurrentStyle* currentStyle();
    [propput, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] void onpropertychange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] VARIANT onpropertychange();
    [id(DISPID_IHTMLELEMENT2_GETCLIENTRECTS)] IHTMLRectCollection* getClientRects();
    [id(DISPID_IHTMLELEMENT2_GETBOUNDINGCLIENTRECT)] IHTMLRect* getBoundingClientRect();
    [id(DISPID_IHTMLELEMENT2_SETEXPRESSION)] void setExpression([in] BSTR propname,[in] BSTR expression,[defaultvalue(""), in] BSTR language);
    [id(DISPID_IHTMLELEMENT2_GETEXPRESSION)] VARIANT getExpression([in] BSTR propname);
    [id(DISPID_IHTMLELEMENT2_REMOVEEXPRESSION)] VARIANT_BOOL removeExpression([in] BSTR propname);
    [propput, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] void tabIndex(short v);
    [propget, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] short tabIndex();
    [id(DISPID_IHTMLELEMENT2_FOCUS)] void focus();
    [propput, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] void accessKey(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] BSTR accessKey();
    [propput, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] void onblur(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] VARIANT onblur();
    [propput, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] void onfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] VARIANT onfocus();
    [propput, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] void onresize(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] VARIANT onresize();
    [id(DISPID_IHTMLELEMENT2_BLUR)] void blur();
    [id(DISPID_IHTMLELEMENT2_ADDFILTER)] void addFilter([in] IUnknown* pUnk);
    [id(DISPID_IHTMLELEMENT2_REMOVEFILTER)] void removeFilter([in] IUnknown* pUnk);
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTHEIGHT), displaybind, bindable] long clientHeight();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTWIDTH), displaybind, bindable] long clientWidth();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTTOP), displaybind, bindable] long clientTop();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTLEFT), displaybind, bindable] long clientLeft();
    [id(DISPID_IHTMLELEMENT2_ATTACHEVENT)] VARIANT_BOOL attachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [id(DISPID_IHTMLELEMENT2_DETACHEVENT)] void detachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATE)] VARIANT readyState();
    [propput, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] void onreadystatechange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] VARIANT onreadystatechange();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] void onrowsdelete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] VARIANT onrowsdelete();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] void onrowsinserted(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] VARIANT onrowsinserted();
    [propput, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] void oncellchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] VARIANT oncellchange();
    [propput, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] void dir(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] BSTR dir();
    [id(DISPID_IHTMLELEMENT2_CREATECONTROLRANGE)] IDispatch* createControlRange();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLHEIGHT), displaybind, bindable] long scrollHeight();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLWIDTH), displaybind, bindable] long scrollWidth();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] void scrollTop(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] long scrollTop();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] void scrollLeft(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] long scrollLeft();
    [id(DISPID_IHTMLELEMENT2_CLEARATTRIBUTES)] void clearAttributes();
    [id(DISPID_IHTMLELEMENT2_MERGEATTRIBUTES)] void mergeAttributes([in] IHTMLElement* mergeThis);
    [propput, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] void oncontextmenu(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] VARIANT oncontextmenu();
    [id(DISPID_IHTMLELEMENT2_INSERTADJACENTELEMENT)] IHTMLElement* insertAdjacentElement([in] BSTR where,[in] IHTMLElement* insertedElement);
    [id(DISPID_IHTMLELEMENT2_APPLYELEMENT)] IHTMLElement* applyElement([in] IHTMLElement* apply,[in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_GETADJACENTTEXT)] BSTR getAdjacentText([in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_REPLACEADJACENTTEXT)] BSTR replaceAdjacentText([in] BSTR where,[in] BSTR newText);
    [propget, id(DISPID_IHTMLELEMENT2_CANHAVECHILDREN)] VARIANT_BOOL canHaveChildren();
    [id(DISPID_IHTMLELEMENT2_ADDBEHAVIOR)] long addBehavior([in] BSTR bstrUrl,[optional, in] VARIANT* pvarFactory);
    [id(DISPID_IHTMLELEMENT2_REMOVEBEHAVIOR)] VARIANT_BOOL removeBehavior([in] long cookie);
    [propget, id(DISPID_IHTMLELEMENT2_RUNTIMESTYLE), nonbrowsable] IHTMLStyle* runtimeStyle();
    [propget, id(DISPID_IHTMLELEMENT2_BEHAVIORURNS)] IDispatch* behaviorUrns();
    [propput, id(DISPID_IHTMLELEMENT2_TAGURN)] void tagUrn(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_TAGURN)] BSTR tagUrn();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] void onbeforeeditfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] VARIANT onbeforeeditfocus();
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATEVALUE), hidden, restricted] long readyStateValue();
    [id(DISPID_IHTMLELEMENT2_GETELEMENTSBYTAGNAME)] IHTMLElementCollection* getElementsByTagName([in] BSTR v);
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUENUMBER), hidden] long uniqueNumber();
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUEID), hidden] BSTR uniqueID();
    [propget, id(DISPID_IHTMLDOMNODE_NODETYPE)] long nodeType();
    [propget, id(DISPID_IHTMLDOMNODE_PARENTNODE)] IHTMLDOMNode* parentNode();
    [id(DISPID_IHTMLDOMNODE_HASCHILDNODES)] VARIANT_BOOL hasChildNodes();
    [propget, id(DISPID_IHTMLDOMNODE_CHILDNODES)] IDispatch* childNodes();
    [propget, id(DISPID_IHTMLDOMNODE_ATTRIBUTES)] IDispatch* attributes();
    [id(DISPID_IHTMLDOMNODE_INSERTBEFORE)] IHTMLDOMNode* insertBefore([in] IHTMLDOMNode* newChild,[optional, in] VARIANT refChild);
    [id(DISPID_IHTMLDOMNODE_REMOVECHILD)] IHTMLDOMNode* removeChild([in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_REPLACECHILD)] IHTMLDOMNode* replaceChild([in] IHTMLDOMNode* newChild,[in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_CLONENODE)] IHTMLDOMNode* cloneNode([in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_REMOVENODE)] IHTMLDOMNode* removeNode([defaultvalue(0), in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_SWAPNODE)] IHTMLDOMNode* swapNode([in] IHTMLDOMNode* otherNode);
    [id(DISPID_IHTMLDOMNODE_REPLACENODE)] IHTMLDOMNode* replaceNode([in] IHTMLDOMNode* replacement);
    [id(DISPID_IHTMLDOMNODE_APPENDCHILD)] IHTMLDOMNode* appendChild([in] IHTMLDOMNode* newChild);
    [propget, id(DISPID_IHTMLDOMNODE_NODENAME)] BSTR nodeName();
    [propput, id(DISPID_IHTMLDOMNODE_NODEVALUE)] void nodeValue(VARIANT v);
    [propget, id(DISPID_IHTMLDOMNODE_NODEVALUE)] VARIANT nodeValue();
    [propget, id(DISPID_IHTMLDOMNODE_FIRSTCHILD)] IHTMLDOMNode* firstChild();
    [propget, id(DISPID_IHTMLDOMNODE_LASTCHILD)] IHTMLDOMNode* lastChild();
    [propget, id(DISPID_IHTMLDOMNODE_PREVIOUSSIBLING)] IHTMLDOMNode* previousSibling();
    [propget, id(DISPID_IHTMLDOMNODE_NEXTSIBLING)] IHTMLDOMNode* nextSibling();
    [propput, id(DISPID_IHTMLDATABINDING_DATAFLD)] void dataFld(BSTR v);
    [propget, id(DISPID_IHTMLDATABINDING_DATAFLD)] BSTR dataFld();
    [propput, id(DISPID_IHTMLDATABINDING_DATASRC)] void dataSrc(BSTR v);
    [propget, id(DISPID_IHTMLDATABINDING_DATASRC)] BSTR dataSrc();
    [propput, id(DISPID_IHTMLDATABINDING_DATAFORMATAS)] void dataFormatAs(BSTR v);
    [propget, id(DISPID_IHTMLDATABINDING_DATAFORMATAS)] BSTR dataFormatAs();
    [propput, id(DISPID_IHTMLSELECTELEMENT_SIZE), displaybind, bindable] void size(long v);
    [propget, id(DISPID_IHTMLSELECTELEMENT_SIZE), displaybind, bindable] long size();
    [propput, id(DISPID_IHTMLSELECTELEMENT_MULTIPLE), displaybind, bindable] void multiple(VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLSELECTELEMENT_MULTIPLE), displaybind, bindable] VARIANT_BOOL multiple();
    [propput, id(DISPID_IHTMLSELECTELEMENT_NAME), displaybind, bindable] void name(BSTR v);
    [propget, id(DISPID_IHTMLSELECTELEMENT_NAME), displaybind, bindable] BSTR name();
    [propget, id(DISPID_IHTMLSELECTELEMENT_OPTIONS)] IDispatch* options();
    [propput, id(DISPID_IHTMLSELECTELEMENT_ONCHANGE), displaybind, bindable] void onchange(VARIANT v);
    [propget, id(DISPID_IHTMLSELECTELEMENT_ONCHANGE), displaybind, bindable] VARIANT onchange();
    [propput, id(DISPID_IHTMLSELECTELEMENT_SELECTEDINDEX)] void selectedIndex(long v);
    [propget, id(DISPID_IHTMLSELECTELEMENT_SELECTEDINDEX)] long selectedIndex();
    [propget, id(DISPID_IHTMLSELECTELEMENT_TYPE), displaybind, bindable] BSTR type();
    [propput, id(DISPID_IHTMLSELECTELEMENT_VALUE), displaybind, bindable] void value(BSTR v);
    [propget, id(DISPID_IHTMLSELECTELEMENT_VALUE), displaybind, bindable] BSTR value();
    [propput, id(DISPID_IHTMLSELECTELEMENT_DISABLED), displaybind, bindable] void disabled(VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLSELECTELEMENT_DISABLED), displaybind, bindable] VARIANT_BOOL disabled();
    [propget, id(DISPID_IHTMLSELECTELEMENT_FORM)] IHTMLFormElement* form();
    [id(DISPID_IHTMLSELECTELEMENT_ADD)] void add([in] IHTMLElement* element,[optional, in] VARIANT before);
    [id(DISPID_IHTMLSELECTELEMENT_REMOVE)] void remove([defaultvalue(-1), in] long index);
    [propput, id(DISPID_IHTMLSELECTELEMENT_LENGTH)] void length(long v);
    [propget, id(DISPID_IHTMLSELECTELEMENT_LENGTH)] long length();
    [propget, id(DISPID_IHTMLSELECTELEMENT__NEWENUM), hidden, restricted] IUnknown* _newEnum();
    [id(DISPID_IHTMLSELECTELEMENT_ITEM)] IDispatch* item([optional, in] VARIANT name,[optional, in] VARIANT index);
    [id(DISPID_IHTMLSELECTELEMENT_TAGS)] IDispatch* tags([in] VARIANT tagName);
    [id(DISPID_IHTMLSELECTELEMENT2_URNS)] IDispatch* urns([in] VARIANT urn);
};
[
    uuid(3050f245-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLSelectElement
{
    [default]           dispinterface DispHTMLSelectElement;
    [source, default]   dispinterface HTMLSelectElementEvents;
    [source]            dispinterface HTMLSelectElementEvents2;
                        interface IHTMLElement;
                        interface IHTMLElement2;
                        interface IHTMLUniqueName;
                        interface IHTMLDOMNode;
                        interface IHTMLDatabinding;
                        interface IHTMLControlElement;
                        interface IHTMLSelectElement;
                        interface IHTMLSelectElement2;
};
cpp_quote("EXTERN_C const GUID CLSID_CSelectElement;")
typedef enum _htmlSelection
{
    htmlSelectionNone = 0,
    htmlSelectionText = 1,
    htmlSelectionControl = 2,
    htmlSelectionTable = 3,
    htmlSelection_Max = 2147483647L
} htmlSelection;

[
    odl,
    oleautomation,
    dual,
    uuid(3050f25A-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLSelectionObject : IDispatch
{
    [id(DISPID_IHTMLSELECTIONOBJECT_CREATERANGE)] HRESULT createRange([retval, out] IDispatch** range);
    [id(DISPID_IHTMLSELECTIONOBJECT_EMPTY)] HRESULT empty();
    [id(DISPID_IHTMLSELECTIONOBJECT_CLEAR)] HRESULT clear();
    [propget, id(DISPID_IHTMLSELECTIONOBJECT_TYPE)] HRESULT type([retval, out] BSTR * p);
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f211-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLOptionElement : IDispatch
{
    [propput, id(DISPID_IHTMLOPTIONELEMENT_SELECTED)] HRESULT selected([in] VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLOPTIONELEMENT_SELECTED)] HRESULT selected([retval, out] VARIANT_BOOL * p);
    [propput, id(DISPID_IHTMLOPTIONELEMENT_VALUE)] HRESULT value([in] BSTR v);
    [propget, id(DISPID_IHTMLOPTIONELEMENT_VALUE)] HRESULT value([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLOPTIONELEMENT_DEFAULTSELECTED)] HRESULT defaultSelected([in] VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLOPTIONELEMENT_DEFAULTSELECTED)] HRESULT defaultSelected([retval, out] VARIANT_BOOL * p);
    [propput, id(DISPID_IHTMLOPTIONELEMENT_INDEX)] HRESULT index([in] LONG v);
    [propget, id(DISPID_IHTMLOPTIONELEMENT_INDEX)] HRESULT index([retval, out] LONG * p);
    [propput, id(DISPID_IHTMLOPTIONELEMENT_TEXT)] HRESULT text([in] BSTR v);
    [propget, id(DISPID_IHTMLOPTIONELEMENT_TEXT)] HRESULT text([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLOPTIONELEMENT_FORM)] HRESULT form([retval, out] IHTMLFormElement* * p);
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f38c-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLOptionElementFactory : IDispatch
{
    [id(DISPID_IHTMLOPTIONELEMENTFACTORY_CREATE)] HRESULT create([optional, in] VARIANT text,[optional, in] VARIANT value,[optional, in] VARIANT defaultselected,[optional, in] VARIANT selected,[retval, out] IHTMLOptionElement** );
};
[
    hidden,
    uuid(3050f52b-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTMLOptionElement
{
properties:
methods:
    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)] void setAttribute([in] BSTR strAttributeName,[in] VARIANT AttributeValue,[defaultvalue(1), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)] VARIANT getAttribute([in] BSTR strAttributeName,[defaultvalue(0), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)] VARIANT_BOOL removeAttribute([in] BSTR strAttributeName,[defaultvalue(1), in] LONG lFlags);
    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] void className(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] BSTR className();
    [propput, id(DISPID_IHTMLELEMENT_ID), bindable] void id(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_ID), bindable] BSTR id();
    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)] BSTR tagName();
    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)] IHTMLElement* parentElement();
    [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable] IHTMLStyle* style();
    [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] void onhelp(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] VARIANT onhelp();
    [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] void onclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] VARIANT onclick();
    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] void ondblclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] VARIANT ondblclick();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] void onkeydown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] VARIANT onkeydown();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] void onkeyup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] VARIANT onkeyup();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] void onkeypress(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] VARIANT onkeypress();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] void onmouseout(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] VARIANT onmouseout();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] void onmouseover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] VARIANT onmouseover();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] void onmousemove(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] VARIANT onmousemove();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] void onmousedown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] VARIANT onmousedown();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] void onmouseup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] VARIANT onmouseup();
    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)] IDispatch* document();
    [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] void title(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] BSTR title();
    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] void language(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] BSTR language();
    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] void onselectstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] VARIANT onselectstart();
    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)] void scrollIntoView([optional, in] VARIANT varargStart);
    [id(DISPID_IHTMLELEMENT_CONTAINS)] VARIANT_BOOL contains([in] IHTMLElement* pChild);
    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable] long sourceIndex();
    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)] VARIANT recordNumber();
    [propput, id(DISPID_IHTMLELEMENT_LANG)] void lang(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANG)] BSTR lang();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)] long offsetLeft();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)] long offsetTop();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)] long offsetWidth();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)] long offsetHeight();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)] IHTMLElement* offsetParent();
    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)] void innerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)] BSTR innerHTML();
    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)] void innerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)] BSTR innerText();
    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)] void outerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)] BSTR outerHTML();
    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)] void outerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)] BSTR outerText();
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)] void insertAdjacentHTML([in] BSTR where,[in] BSTR html);
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)] void insertAdjacentText([in] BSTR where,[in] BSTR text);
    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)] IHTMLElement* parentTextEdit();
    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)] VARIANT_BOOL isTextEdit();
    [id(DISPID_IHTMLELEMENT_CLICK)] void click();
    [propget, id(DISPID_IHTMLELEMENT_FILTERS)] IHTMLFiltersCollection* filters();
    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] void ondragstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] VARIANT ondragstart();
    [id(DISPID_IHTMLELEMENT_TOSTRING)] BSTR toString();
    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] void onbeforeupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] VARIANT onbeforeupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] void onafterupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] VARIANT onafterupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] void onerrorupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] VARIANT onerrorupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] void onrowexit(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] VARIANT onrowexit();
    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] void onrowenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] VARIANT onrowenter();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] void ondatasetchanged(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] VARIANT ondatasetchanged();
    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] void ondataavailable(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] VARIANT ondataavailable();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] void ondatasetcomplete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] VARIANT ondatasetcomplete();
    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] void onfilterchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] VARIANT onfilterchange();
    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)] IDispatch* children();
    [propget, id(DISPID_IHTMLELEMENT_ALL)] IDispatch* all();
    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)] BSTR scopeName();
    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)] void setCapture([defaultvalue(-1), in] VARIANT_BOOL containerCapture);
    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)] void releaseCapture();
    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] void onlosecapture(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] VARIANT onlosecapture();
    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)] BSTR componentFromPoint([in] long x,[in] long y);
    [id(DISPID_IHTMLELEMENT2_DOSCROLL)] void doScroll([optional, in] VARIANT component);
    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] void onscroll(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] VARIANT onscroll();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] void ondrag(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] VARIANT ondrag();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] void ondragend(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] VARIANT ondragend();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] void ondragenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] VARIANT ondragenter();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] void ondragover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] VARIANT ondragover();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] void ondragleave(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] VARIANT ondragleave();
    [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] void ondrop(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] VARIANT ondrop();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] void onbeforecut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] VARIANT onbeforecut();
    [propput, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] void oncut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] VARIANT oncut();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] void onbeforecopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] VARIANT onbeforecopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] void oncopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] VARIANT oncopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] void onbeforepaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] VARIANT onbeforepaste();
    [propput, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] void onpaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] VARIANT onpaste();
    [propget, id(DISPID_IHTMLELEMENT2_CURRENTSTYLE), nonbrowsable] IHTMLCurrentStyle* currentStyle();
    [propput, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] void onpropertychange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] VARIANT onpropertychange();
    [id(DISPID_IHTMLELEMENT2_GETCLIENTRECTS)] IHTMLRectCollection* getClientRects();
    [id(DISPID_IHTMLELEMENT2_GETBOUNDINGCLIENTRECT)] IHTMLRect* getBoundingClientRect();
    [id(DISPID_IHTMLELEMENT2_SETEXPRESSION)] void setExpression([in] BSTR propname,[in] BSTR expression,[defaultvalue(""), in] BSTR language);
    [id(DISPID_IHTMLELEMENT2_GETEXPRESSION)] VARIANT getExpression([in] BSTR propname);
    [id(DISPID_IHTMLELEMENT2_REMOVEEXPRESSION)] VARIANT_BOOL removeExpression([in] BSTR propname);
    [propput, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] void tabIndex(short v);
    [propget, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] short tabIndex();
    [id(DISPID_IHTMLELEMENT2_FOCUS)] void focus();
    [propput, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] void accessKey(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] BSTR accessKey();
    [propput, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] void onblur(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] VARIANT onblur();
    [propput, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] void onfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] VARIANT onfocus();
    [propput, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] void onresize(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] VARIANT onresize();
    [id(DISPID_IHTMLELEMENT2_BLUR)] void blur();
    [id(DISPID_IHTMLELEMENT2_ADDFILTER)] void addFilter([in] IUnknown* pUnk);
    [id(DISPID_IHTMLELEMENT2_REMOVEFILTER)] void removeFilter([in] IUnknown* pUnk);
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTHEIGHT), displaybind, bindable] long clientHeight();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTWIDTH), displaybind, bindable] long clientWidth();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTTOP), displaybind, bindable] long clientTop();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTLEFT), displaybind, bindable] long clientLeft();
    [id(DISPID_IHTMLELEMENT2_ATTACHEVENT)] VARIANT_BOOL attachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [id(DISPID_IHTMLELEMENT2_DETACHEVENT)] void detachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATE)] VARIANT readyState();
    [propput, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] void onreadystatechange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] VARIANT onreadystatechange();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] void onrowsdelete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] VARIANT onrowsdelete();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] void onrowsinserted(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] VARIANT onrowsinserted();
    [propput, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] void oncellchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] VARIANT oncellchange();
    [propput, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] void dir(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] BSTR dir();
    [id(DISPID_IHTMLELEMENT2_CREATECONTROLRANGE)] IDispatch* createControlRange();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLHEIGHT), displaybind, bindable] long scrollHeight();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLWIDTH), displaybind, bindable] long scrollWidth();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] void scrollTop(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] long scrollTop();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] void scrollLeft(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] long scrollLeft();
    [id(DISPID_IHTMLELEMENT2_CLEARATTRIBUTES)] void clearAttributes();
    [id(DISPID_IHTMLELEMENT2_MERGEATTRIBUTES)] void mergeAttributes([in] IHTMLElement* mergeThis);
    [propput, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] void oncontextmenu(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] VARIANT oncontextmenu();
    [id(DISPID_IHTMLELEMENT2_INSERTADJACENTELEMENT)] IHTMLElement* insertAdjacentElement([in] BSTR where,[in] IHTMLElement* insertedElement);
    [id(DISPID_IHTMLELEMENT2_APPLYELEMENT)] IHTMLElement* applyElement([in] IHTMLElement* apply,[in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_GETADJACENTTEXT)] BSTR getAdjacentText([in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_REPLACEADJACENTTEXT)] BSTR replaceAdjacentText([in] BSTR where,[in] BSTR newText);
    [propget, id(DISPID_IHTMLELEMENT2_CANHAVECHILDREN)] VARIANT_BOOL canHaveChildren();
    [id(DISPID_IHTMLELEMENT2_ADDBEHAVIOR)] long addBehavior([in] BSTR bstrUrl,[optional, in] VARIANT* pvarFactory);
    [id(DISPID_IHTMLELEMENT2_REMOVEBEHAVIOR)] VARIANT_BOOL removeBehavior([in] long cookie);
    [propget, id(DISPID_IHTMLELEMENT2_RUNTIMESTYLE), nonbrowsable] IHTMLStyle* runtimeStyle();
    [propget, id(DISPID_IHTMLELEMENT2_BEHAVIORURNS)] IDispatch* behaviorUrns();
    [propput, id(DISPID_IHTMLELEMENT2_TAGURN)] void tagUrn(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_TAGURN)] BSTR tagUrn();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] void onbeforeeditfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] VARIANT onbeforeeditfocus();
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATEVALUE), hidden, restricted] long readyStateValue();
    [id(DISPID_IHTMLELEMENT2_GETELEMENTSBYTAGNAME)] IHTMLElementCollection* getElementsByTagName([in] BSTR v);
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUENUMBER), hidden] long uniqueNumber();
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUEID), hidden] BSTR uniqueID();
    [propget, id(DISPID_IHTMLDOMNODE_NODETYPE)] long nodeType();
    [propget, id(DISPID_IHTMLDOMNODE_PARENTNODE)] IHTMLDOMNode* parentNode();
    [id(DISPID_IHTMLDOMNODE_HASCHILDNODES)] VARIANT_BOOL hasChildNodes();
    [propget, id(DISPID_IHTMLDOMNODE_CHILDNODES)] IDispatch* childNodes();
    [propget, id(DISPID_IHTMLDOMNODE_ATTRIBUTES)] IDispatch* attributes();
    [id(DISPID_IHTMLDOMNODE_INSERTBEFORE)] IHTMLDOMNode* insertBefore([in] IHTMLDOMNode* newChild,[optional, in] VARIANT refChild);
    [id(DISPID_IHTMLDOMNODE_REMOVECHILD)] IHTMLDOMNode* removeChild([in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_REPLACECHILD)] IHTMLDOMNode* replaceChild([in] IHTMLDOMNode* newChild,[in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_CLONENODE)] IHTMLDOMNode* cloneNode([in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_REMOVENODE)] IHTMLDOMNode* removeNode([defaultvalue(0), in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_SWAPNODE)] IHTMLDOMNode* swapNode([in] IHTMLDOMNode* otherNode);
    [id(DISPID_IHTMLDOMNODE_REPLACENODE)] IHTMLDOMNode* replaceNode([in] IHTMLDOMNode* replacement);
    [id(DISPID_IHTMLDOMNODE_APPENDCHILD)] IHTMLDOMNode* appendChild([in] IHTMLDOMNode* newChild);
    [propget, id(DISPID_IHTMLDOMNODE_NODENAME)] BSTR nodeName();
    [propput, id(DISPID_IHTMLDOMNODE_NODEVALUE)] void nodeValue(VARIANT v);
    [propget, id(DISPID_IHTMLDOMNODE_NODEVALUE)] VARIANT nodeValue();
    [propget, id(DISPID_IHTMLDOMNODE_FIRSTCHILD)] IHTMLDOMNode* firstChild();
    [propget, id(DISPID_IHTMLDOMNODE_LASTCHILD)] IHTMLDOMNode* lastChild();
    [propget, id(DISPID_IHTMLDOMNODE_PREVIOUSSIBLING)] IHTMLDOMNode* previousSibling();
    [propget, id(DISPID_IHTMLDOMNODE_NEXTSIBLING)] IHTMLDOMNode* nextSibling();
    [propput, id(DISPID_IHTMLDATABINDING_DATAFLD)] void dataFld(BSTR v);
    [propget, id(DISPID_IHTMLDATABINDING_DATAFLD)] BSTR dataFld();
    [propput, id(DISPID_IHTMLDATABINDING_DATASRC)] void dataSrc(BSTR v);
    [propget, id(DISPID_IHTMLDATABINDING_DATASRC)] BSTR dataSrc();
    [propput, id(DISPID_IHTMLDATABINDING_DATAFORMATAS)] void dataFormatAs(BSTR v);
    [propget, id(DISPID_IHTMLDATABINDING_DATAFORMATAS)] BSTR dataFormatAs();
    [propput, id(DISPID_IHTMLOPTIONELEMENT_SELECTED)] void selected(VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLOPTIONELEMENT_SELECTED)] VARIANT_BOOL selected();
    [propput, id(DISPID_IHTMLOPTIONELEMENT_VALUE)] void value(BSTR v);
    [propget, id(DISPID_IHTMLOPTIONELEMENT_VALUE)] BSTR value();
    [propput, id(DISPID_IHTMLOPTIONELEMENT_DEFAULTSELECTED)] void defaultSelected(VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLOPTIONELEMENT_DEFAULTSELECTED)] VARIANT_BOOL defaultSelected();
    [propput, id(DISPID_IHTMLOPTIONELEMENT_INDEX)] void index(LONG v);
    [propget, id(DISPID_IHTMLOPTIONELEMENT_INDEX)] LONG index();
    [propput, id(DISPID_IHTMLOPTIONELEMENT_TEXT)] void text(BSTR v);
    [propget, id(DISPID_IHTMLOPTIONELEMENT_TEXT)] BSTR text();
    [propget, id(DISPID_IHTMLOPTIONELEMENT_FORM)] IHTMLFormElement* form();
};
[
    uuid(3050f24d-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLOptionElement
{
    [default]           dispinterface DispHTMLOptionElement;
    [source, default]   dispinterface HTMLElementEvents;
    [source]            dispinterface HTMLElementEvents2;
                        interface IHTMLElement;
                        interface IHTMLElement2;
                        interface IHTMLUniqueName;
                        interface IHTMLDOMNode;
                        interface IHTMLDatabinding;
                        interface IHTMLOptionElement;
};
cpp_quote("EXTERN_C const GUID CLSID_COptionElement;")
[
    uuid(3050f38d-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLOptionElementFactory
{
    [default]           interface IHTMLOptionElementFactory;
};
cpp_quote("EXTERN_C const GUID CLSID_COptionElementFactory;")
[
    hidden,
    uuid(3050f617-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface HTMLButtonElementEvents2
{
properties:
methods:
    [id(DISPID_HTMLELEMENTEVENTS2_ONHELP)] VARIANT_BOOL onhelp([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCLICK)] VARIANT_BOOL onclick([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDBLCLICK)] VARIANT_BOOL ondblclick([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONKEYPRESS)] VARIANT_BOOL onkeypress([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONKEYDOWN)] void onkeydown([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONKEYUP)] void onkeyup([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEOUT)] void onmouseout([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEOVER)] void onmouseover([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEMOVE)] void onmousemove([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEDOWN)] void onmousedown([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEUP)] void onmouseup([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONSELECTSTART)] VARIANT_BOOL onselectstart([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONFILTERCHANGE)] void onfilterchange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGSTART)] VARIANT_BOOL ondragstart([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFOREUPDATE)] VARIANT_BOOL onbeforeupdate([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONAFTERUPDATE)] void onafterupdate([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONERRORUPDATE)] VARIANT_BOOL onerrorupdate([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWEXIT)] VARIANT_BOOL onrowexit([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWENTER)] void onrowenter([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDATASETCHANGED)] void ondatasetchanged([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDATAAVAILABLE)] void ondataavailable([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDATASETCOMPLETE)] void ondatasetcomplete([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONLOSECAPTURE)] void onlosecapture([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONPROPERTYCHANGE)] void onpropertychange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONSCROLL)] void onscroll([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONFOCUS)] void onfocus([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBLUR)] void onblur([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONRESIZE)] void onresize([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAG)] VARIANT_BOOL ondrag([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGEND)] void ondragend([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGENTER)] VARIANT_BOOL ondragenter([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGOVER)] VARIANT_BOOL ondragover([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGLEAVE)] void ondragleave([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDROP)] VARIANT_BOOL ondrop([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFORECUT)] VARIANT_BOOL onbeforecut([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCUT)] VARIANT_BOOL oncut([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFORECOPY)] VARIANT_BOOL onbeforecopy([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCOPY)] VARIANT_BOOL oncopy([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFOREPASTE)] VARIANT_BOOL onbeforepaste([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONPASTE)] VARIANT_BOOL onpaste([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCONTEXTMENU)] VARIANT_BOOL oncontextmenu([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWSDELETE)] void onrowsdelete([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWSINSERTED)] void onrowsinserted([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCELLCHANGE)] void oncellchange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONREADYSTATECHANGE)] void onreadystatechange([in] IHTMLEventObj* pEvtObj);
};
[
    hidden,
    uuid(3050f2b3-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface HTMLButtonElementEvents
{
properties:
methods:
    [id(DISPID_HTMLELEMENTEVENTS_ONHELP)] VARIANT_BOOL onhelp();
    [id(DISPID_HTMLELEMENTEVENTS_ONCLICK)] VARIANT_BOOL onclick();
    [id(DISPID_HTMLELEMENTEVENTS_ONDBLCLICK)] VARIANT_BOOL ondblclick();
    [id(DISPID_HTMLELEMENTEVENTS_ONKEYPRESS)] VARIANT_BOOL onkeypress();
    [id(DISPID_HTMLELEMENTEVENTS_ONKEYDOWN)] void onkeydown();
    [id(DISPID_HTMLELEMENTEVENTS_ONKEYUP)] void onkeyup();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEOUT)] void onmouseout();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEOVER)] void onmouseover();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEMOVE)] void onmousemove();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEDOWN)] void onmousedown();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEUP)] void onmouseup();
    [id(DISPID_HTMLELEMENTEVENTS_ONSELECTSTART)] VARIANT_BOOL onselectstart();
    [id(DISPID_HTMLELEMENTEVENTS_ONFILTERCHANGE)] void onfilterchange();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGSTART)] VARIANT_BOOL ondragstart();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREUPDATE)] VARIANT_BOOL onbeforeupdate();
    [id(DISPID_HTMLELEMENTEVENTS_ONAFTERUPDATE)] void onafterupdate();
    [id(DISPID_HTMLELEMENTEVENTS_ONERRORUPDATE)] VARIANT_BOOL onerrorupdate();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWEXIT)] VARIANT_BOOL onrowexit();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWENTER)] void onrowenter();
    [id(DISPID_HTMLELEMENTEVENTS_ONDATASETCHANGED)] void ondatasetchanged();
    [id(DISPID_HTMLELEMENTEVENTS_ONDATAAVAILABLE)] void ondataavailable();
    [id(DISPID_HTMLELEMENTEVENTS_ONDATASETCOMPLETE)] void ondatasetcomplete();
    [id(DISPID_HTMLELEMENTEVENTS_ONLOSECAPTURE)] void onlosecapture();
    [id(DISPID_HTMLELEMENTEVENTS_ONPROPERTYCHANGE)] void onpropertychange();
    [id(DISPID_HTMLELEMENTEVENTS_ONSCROLL)] void onscroll();
    [id(DISPID_HTMLELEMENTEVENTS_ONFOCUS)] void onfocus();
    [id(DISPID_HTMLELEMENTEVENTS_ONBLUR)] void onblur();
    [id(DISPID_HTMLELEMENTEVENTS_ONRESIZE)] void onresize();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAG)] VARIANT_BOOL ondrag();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGEND)] void ondragend();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGENTER)] VARIANT_BOOL ondragenter();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGOVER)] VARIANT_BOOL ondragover();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGLEAVE)] void ondragleave();
    [id(DISPID_HTMLELEMENTEVENTS_ONDROP)] VARIANT_BOOL ondrop();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFORECUT)] VARIANT_BOOL onbeforecut();
    [id(DISPID_HTMLELEMENTEVENTS_ONCUT)] VARIANT_BOOL oncut();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFORECOPY)] VARIANT_BOOL onbeforecopy();
    [id(DISPID_HTMLELEMENTEVENTS_ONCOPY)] VARIANT_BOOL oncopy();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREPASTE)] VARIANT_BOOL onbeforepaste();
    [id(DISPID_HTMLELEMENTEVENTS_ONPASTE)] VARIANT_BOOL onpaste();
    [id(DISPID_HTMLELEMENTEVENTS_ONCONTEXTMENU)] VARIANT_BOOL oncontextmenu();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWSDELETE)] void onrowsdelete();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWSINSERTED)] void onrowsinserted();
    [id(DISPID_HTMLELEMENTEVENTS_ONCELLCHANGE)] void oncellchange();
    [id(DISPID_HTMLELEMENTEVENTS_ONREADYSTATECHANGE)] void onreadystatechange();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREEDITFOCUS)] void onbeforeeditfocus();
};
[
    hidden,
    uuid(3050f618-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface HTMLInputTextElementEvents2
{
properties:
methods:
    [id(DISPID_HTMLELEMENTEVENTS2_ONHELP)] VARIANT_BOOL onhelp([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCLICK)] VARIANT_BOOL onclick([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDBLCLICK)] VARIANT_BOOL ondblclick([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONKEYPRESS)] VARIANT_BOOL onkeypress([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONKEYDOWN)] void onkeydown([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONKEYUP)] void onkeyup([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEOUT)] void onmouseout([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEOVER)] void onmouseover([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEMOVE)] void onmousemove([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEDOWN)] void onmousedown([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEUP)] void onmouseup([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONSELECTSTART)] VARIANT_BOOL onselectstart([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONFILTERCHANGE)] void onfilterchange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGSTART)] VARIANT_BOOL ondragstart([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFOREUPDATE)] VARIANT_BOOL onbeforeupdate([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONAFTERUPDATE)] void onafterupdate([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONERRORUPDATE)] VARIANT_BOOL onerrorupdate([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWEXIT)] VARIANT_BOOL onrowexit([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWENTER)] void onrowenter([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDATASETCHANGED)] void ondatasetchanged([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDATAAVAILABLE)] void ondataavailable([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDATASETCOMPLETE)] void ondatasetcomplete([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONLOSECAPTURE)] void onlosecapture([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONPROPERTYCHANGE)] void onpropertychange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONSCROLL)] void onscroll([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONFOCUS)] void onfocus([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBLUR)] void onblur([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONRESIZE)] void onresize([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAG)] VARIANT_BOOL ondrag([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGEND)] void ondragend([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGENTER)] VARIANT_BOOL ondragenter([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGOVER)] VARIANT_BOOL ondragover([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGLEAVE)] void ondragleave([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDROP)] VARIANT_BOOL ondrop([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFORECUT)] VARIANT_BOOL onbeforecut([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCUT)] VARIANT_BOOL oncut([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFORECOPY)] VARIANT_BOOL onbeforecopy([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCOPY)] VARIANT_BOOL oncopy([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFOREPASTE)] VARIANT_BOOL onbeforepaste([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONPASTE)] VARIANT_BOOL onpaste([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCONTEXTMENU)] VARIANT_BOOL oncontextmenu([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWSDELETE)] void onrowsdelete([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWSINSERTED)] void onrowsinserted([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCELLCHANGE)] void oncellchange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONREADYSTATECHANGE)] void onreadystatechange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLINPUTTEXTELEMENTEVENTS2_ONCHANGE)] VARIANT_BOOL onchange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLINPUTTEXTELEMENTEVENTS2_ONSELECT)] void onselect([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLINPUTTEXTELEMENTEVENTS2_ONLOAD)] void onload([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLINPUTTEXTELEMENTEVENTS2_ONERROR)] void onerror([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLINPUTTEXTELEMENTEVENTS2_ONABORT)] void onabort([in] IHTMLEventObj* pEvtObj);
};
[
    hidden,
    uuid(3050f619-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface HTMLOptionButtonElementEvents2
{
properties:
methods:
    [id(DISPID_HTMLELEMENTEVENTS2_ONHELP)] VARIANT_BOOL onhelp([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCLICK)] VARIANT_BOOL onclick([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDBLCLICK)] VARIANT_BOOL ondblclick([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONKEYPRESS)] VARIANT_BOOL onkeypress([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONKEYDOWN)] void onkeydown([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONKEYUP)] void onkeyup([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEOUT)] void onmouseout([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEOVER)] void onmouseover([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEMOVE)] void onmousemove([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEDOWN)] void onmousedown([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEUP)] void onmouseup([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONSELECTSTART)] VARIANT_BOOL onselectstart([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONFILTERCHANGE)] void onfilterchange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGSTART)] VARIANT_BOOL ondragstart([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFOREUPDATE)] VARIANT_BOOL onbeforeupdate([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONAFTERUPDATE)] void onafterupdate([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONERRORUPDATE)] VARIANT_BOOL onerrorupdate([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWEXIT)] VARIANT_BOOL onrowexit([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWENTER)] void onrowenter([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDATASETCHANGED)] void ondatasetchanged([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDATAAVAILABLE)] void ondataavailable([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDATASETCOMPLETE)] void ondatasetcomplete([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONLOSECAPTURE)] void onlosecapture([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONPROPERTYCHANGE)] void onpropertychange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONSCROLL)] void onscroll([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONFOCUS)] void onfocus([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBLUR)] void onblur([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONRESIZE)] void onresize([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAG)] VARIANT_BOOL ondrag([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGEND)] void ondragend([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGENTER)] VARIANT_BOOL ondragenter([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGOVER)] VARIANT_BOOL ondragover([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGLEAVE)] void ondragleave([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDROP)] VARIANT_BOOL ondrop([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFORECUT)] VARIANT_BOOL onbeforecut([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCUT)] VARIANT_BOOL oncut([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFORECOPY)] VARIANT_BOOL onbeforecopy([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCOPY)] VARIANT_BOOL oncopy([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFOREPASTE)] VARIANT_BOOL onbeforepaste([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONPASTE)] VARIANT_BOOL onpaste([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCONTEXTMENU)] VARIANT_BOOL oncontextmenu([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWSDELETE)] void onrowsdelete([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWSINSERTED)] void onrowsinserted([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCELLCHANGE)] void oncellchange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONREADYSTATECHANGE)] void onreadystatechange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLINPUTTEXTELEMENTEVENTS2_ONCHANGE)] VARIANT_BOOL onchange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLINPUTTEXTELEMENTEVENTS2_ONSELECT)] void onselect([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLINPUTTEXTELEMENTEVENTS2_ONLOAD)] void onload([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLINPUTTEXTELEMENTEVENTS2_ONERROR)] void onerror([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLINPUTTEXTELEMENTEVENTS2_ONABORT)] void onabort([in] IHTMLEventObj* pEvtObj);
};
[
    hidden,
    uuid(3050f61a-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface HTMLInputFileElementEvents2
{
properties:
methods:
    [id(DISPID_HTMLELEMENTEVENTS2_ONHELP)] VARIANT_BOOL onhelp([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCLICK)] VARIANT_BOOL onclick([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDBLCLICK)] VARIANT_BOOL ondblclick([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONKEYPRESS)] VARIANT_BOOL onkeypress([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONKEYDOWN)] void onkeydown([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONKEYUP)] void onkeyup([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEOUT)] void onmouseout([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEOVER)] void onmouseover([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEMOVE)] void onmousemove([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEDOWN)] void onmousedown([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEUP)] void onmouseup([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONSELECTSTART)] VARIANT_BOOL onselectstart([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONFILTERCHANGE)] void onfilterchange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGSTART)] VARIANT_BOOL ondragstart([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFOREUPDATE)] VARIANT_BOOL onbeforeupdate([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONAFTERUPDATE)] void onafterupdate([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONERRORUPDATE)] VARIANT_BOOL onerrorupdate([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWEXIT)] VARIANT_BOOL onrowexit([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWENTER)] void onrowenter([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDATASETCHANGED)] void ondatasetchanged([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDATAAVAILABLE)] void ondataavailable([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDATASETCOMPLETE)] void ondatasetcomplete([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONLOSECAPTURE)] void onlosecapture([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONPROPERTYCHANGE)] void onpropertychange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONSCROLL)] void onscroll([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONFOCUS)] void onfocus([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBLUR)] void onblur([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONRESIZE)] void onresize([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAG)] VARIANT_BOOL ondrag([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGEND)] void ondragend([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGENTER)] VARIANT_BOOL ondragenter([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGOVER)] VARIANT_BOOL ondragover([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGLEAVE)] void ondragleave([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDROP)] VARIANT_BOOL ondrop([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFORECUT)] VARIANT_BOOL onbeforecut([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCUT)] VARIANT_BOOL oncut([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFORECOPY)] VARIANT_BOOL onbeforecopy([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCOPY)] VARIANT_BOOL oncopy([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFOREPASTE)] VARIANT_BOOL onbeforepaste([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONPASTE)] VARIANT_BOOL onpaste([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCONTEXTMENU)] VARIANT_BOOL oncontextmenu([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWSDELETE)] void onrowsdelete([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWSINSERTED)] void onrowsinserted([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCELLCHANGE)] void oncellchange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONREADYSTATECHANGE)] void onreadystatechange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLINPUTTEXTELEMENTEVENTS2_ONCHANGE)] VARIANT_BOOL onchange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLINPUTTEXTELEMENTEVENTS2_ONSELECT)] void onselect([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLINPUTTEXTELEMENTEVENTS2_ONLOAD)] void onload([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLINPUTTEXTELEMENTEVENTS2_ONERROR)] void onerror([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLINPUTTEXTELEMENTEVENTS2_ONABORT)] void onabort([in] IHTMLEventObj* pEvtObj);
};
[
    hidden,
    uuid(3050f61b-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface HTMLInputImageEvents2
{
properties:
methods:
    [id(DISPID_HTMLELEMENTEVENTS2_ONHELP)] VARIANT_BOOL onhelp([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCLICK)] VARIANT_BOOL onclick([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDBLCLICK)] VARIANT_BOOL ondblclick([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONKEYPRESS)] VARIANT_BOOL onkeypress([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONKEYDOWN)] void onkeydown([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONKEYUP)] void onkeyup([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEOUT)] void onmouseout([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEOVER)] void onmouseover([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEMOVE)] void onmousemove([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEDOWN)] void onmousedown([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEUP)] void onmouseup([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONSELECTSTART)] VARIANT_BOOL onselectstart([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONFILTERCHANGE)] void onfilterchange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGSTART)] VARIANT_BOOL ondragstart([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFOREUPDATE)] VARIANT_BOOL onbeforeupdate([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONAFTERUPDATE)] void onafterupdate([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONERRORUPDATE)] VARIANT_BOOL onerrorupdate([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWEXIT)] VARIANT_BOOL onrowexit([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWENTER)] void onrowenter([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDATASETCHANGED)] void ondatasetchanged([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDATAAVAILABLE)] void ondataavailable([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDATASETCOMPLETE)] void ondatasetcomplete([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONLOSECAPTURE)] void onlosecapture([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONPROPERTYCHANGE)] void onpropertychange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONSCROLL)] void onscroll([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONFOCUS)] void onfocus([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBLUR)] void onblur([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONRESIZE)] void onresize([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAG)] VARIANT_BOOL ondrag([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGEND)] void ondragend([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGENTER)] VARIANT_BOOL ondragenter([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGOVER)] VARIANT_BOOL ondragover([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGLEAVE)] void ondragleave([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDROP)] VARIANT_BOOL ondrop([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFORECUT)] VARIANT_BOOL onbeforecut([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCUT)] VARIANT_BOOL oncut([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFORECOPY)] VARIANT_BOOL onbeforecopy([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCOPY)] VARIANT_BOOL oncopy([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFOREPASTE)] VARIANT_BOOL onbeforepaste([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONPASTE)] VARIANT_BOOL onpaste([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCONTEXTMENU)] VARIANT_BOOL oncontextmenu([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWSDELETE)] void onrowsdelete([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWSINSERTED)] void onrowsinserted([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCELLCHANGE)] void oncellchange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONREADYSTATECHANGE)] void onreadystatechange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLINPUTIMAGEEVENTS2_ONLOAD)] void onload([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLINPUTIMAGEEVENTS2_ONERROR)] void onerror([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLINPUTIMAGEEVENTS2_ONABORT)] void onabort([in] IHTMLEventObj* pEvtObj);
};
[
    hidden,
    uuid(3050f2a7-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface HTMLInputTextElementEvents
{
properties:
methods:
    [id(DISPID_HTMLELEMENTEVENTS_ONHELP)] VARIANT_BOOL onhelp();
    [id(DISPID_HTMLELEMENTEVENTS_ONCLICK)] VARIANT_BOOL onclick();
    [id(DISPID_HTMLELEMENTEVENTS_ONDBLCLICK)] VARIANT_BOOL ondblclick();
    [id(DISPID_HTMLELEMENTEVENTS_ONKEYPRESS)] VARIANT_BOOL onkeypress();
    [id(DISPID_HTMLELEMENTEVENTS_ONKEYDOWN)] void onkeydown();
    [id(DISPID_HTMLELEMENTEVENTS_ONKEYUP)] void onkeyup();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEOUT)] void onmouseout();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEOVER)] void onmouseover();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEMOVE)] void onmousemove();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEDOWN)] void onmousedown();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEUP)] void onmouseup();
    [id(DISPID_HTMLELEMENTEVENTS_ONSELECTSTART)] VARIANT_BOOL onselectstart();
    [id(DISPID_HTMLELEMENTEVENTS_ONFILTERCHANGE)] void onfilterchange();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGSTART)] VARIANT_BOOL ondragstart();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREUPDATE)] VARIANT_BOOL onbeforeupdate();
    [id(DISPID_HTMLELEMENTEVENTS_ONAFTERUPDATE)] void onafterupdate();
    [id(DISPID_HTMLELEMENTEVENTS_ONERRORUPDATE)] VARIANT_BOOL onerrorupdate();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWEXIT)] VARIANT_BOOL onrowexit();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWENTER)] void onrowenter();
    [id(DISPID_HTMLELEMENTEVENTS_ONDATASETCHANGED)] void ondatasetchanged();
    [id(DISPID_HTMLELEMENTEVENTS_ONDATAAVAILABLE)] void ondataavailable();
    [id(DISPID_HTMLELEMENTEVENTS_ONDATASETCOMPLETE)] void ondatasetcomplete();
    [id(DISPID_HTMLELEMENTEVENTS_ONLOSECAPTURE)] void onlosecapture();
    [id(DISPID_HTMLELEMENTEVENTS_ONPROPERTYCHANGE)] void onpropertychange();
    [id(DISPID_HTMLELEMENTEVENTS_ONSCROLL)] void onscroll();
    [id(DISPID_HTMLELEMENTEVENTS_ONFOCUS)] void onfocus();
    [id(DISPID_HTMLELEMENTEVENTS_ONBLUR)] void onblur();
    [id(DISPID_HTMLELEMENTEVENTS_ONRESIZE)] void onresize();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAG)] VARIANT_BOOL ondrag();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGEND)] void ondragend();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGENTER)] VARIANT_BOOL ondragenter();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGOVER)] VARIANT_BOOL ondragover();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGLEAVE)] void ondragleave();
    [id(DISPID_HTMLELEMENTEVENTS_ONDROP)] VARIANT_BOOL ondrop();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFORECUT)] VARIANT_BOOL onbeforecut();
    [id(DISPID_HTMLELEMENTEVENTS_ONCUT)] VARIANT_BOOL oncut();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFORECOPY)] VARIANT_BOOL onbeforecopy();
    [id(DISPID_HTMLELEMENTEVENTS_ONCOPY)] VARIANT_BOOL oncopy();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREPASTE)] VARIANT_BOOL onbeforepaste();
    [id(DISPID_HTMLELEMENTEVENTS_ONPASTE)] VARIANT_BOOL onpaste();
    [id(DISPID_HTMLELEMENTEVENTS_ONCONTEXTMENU)] VARIANT_BOOL oncontextmenu();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWSDELETE)] void onrowsdelete();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWSINSERTED)] void onrowsinserted();
    [id(DISPID_HTMLELEMENTEVENTS_ONCELLCHANGE)] void oncellchange();
    [id(DISPID_HTMLELEMENTEVENTS_ONREADYSTATECHANGE)] void onreadystatechange();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREEDITFOCUS)] void onbeforeeditfocus();
    [id(DISPID_HTMLINPUTTEXTELEMENTEVENTS_ONCHANGE)] VARIANT_BOOL onchange();
    [id(DISPID_HTMLINPUTTEXTELEMENTEVENTS_ONSELECT)] void onselect();
    [id(DISPID_HTMLINPUTTEXTELEMENTEVENTS_ONLOAD)] void onload();
    [id(DISPID_HTMLINPUTTEXTELEMENTEVENTS_ONERROR)] void onerror();
    [id(DISPID_HTMLINPUTTEXTELEMENTEVENTS_ONABORT)] void onabort();
};
[
    hidden,
    uuid(3050f2bd-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface HTMLOptionButtonElementEvents
{
properties:
methods:
    [id(DISPID_HTMLELEMENTEVENTS_ONHELP)] VARIANT_BOOL onhelp();
    [id(DISPID_HTMLELEMENTEVENTS_ONCLICK)] VARIANT_BOOL onclick();
    [id(DISPID_HTMLELEMENTEVENTS_ONDBLCLICK)] VARIANT_BOOL ondblclick();
    [id(DISPID_HTMLELEMENTEVENTS_ONKEYPRESS)] VARIANT_BOOL onkeypress();
    [id(DISPID_HTMLELEMENTEVENTS_ONKEYDOWN)] void onkeydown();
    [id(DISPID_HTMLELEMENTEVENTS_ONKEYUP)] void onkeyup();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEOUT)] void onmouseout();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEOVER)] void onmouseover();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEMOVE)] void onmousemove();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEDOWN)] void onmousedown();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEUP)] void onmouseup();
    [id(DISPID_HTMLELEMENTEVENTS_ONSELECTSTART)] VARIANT_BOOL onselectstart();
    [id(DISPID_HTMLELEMENTEVENTS_ONFILTERCHANGE)] void onfilterchange();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGSTART)] VARIANT_BOOL ondragstart();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREUPDATE)] VARIANT_BOOL onbeforeupdate();
    [id(DISPID_HTMLELEMENTEVENTS_ONAFTERUPDATE)] void onafterupdate();
    [id(DISPID_HTMLELEMENTEVENTS_ONERRORUPDATE)] VARIANT_BOOL onerrorupdate();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWEXIT)] VARIANT_BOOL onrowexit();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWENTER)] void onrowenter();
    [id(DISPID_HTMLELEMENTEVENTS_ONDATASETCHANGED)] void ondatasetchanged();
    [id(DISPID_HTMLELEMENTEVENTS_ONDATAAVAILABLE)] void ondataavailable();
    [id(DISPID_HTMLELEMENTEVENTS_ONDATASETCOMPLETE)] void ondatasetcomplete();
    [id(DISPID_HTMLELEMENTEVENTS_ONLOSECAPTURE)] void onlosecapture();
    [id(DISPID_HTMLELEMENTEVENTS_ONPROPERTYCHANGE)] void onpropertychange();
    [id(DISPID_HTMLELEMENTEVENTS_ONSCROLL)] void onscroll();
    [id(DISPID_HTMLELEMENTEVENTS_ONFOCUS)] void onfocus();
    [id(DISPID_HTMLELEMENTEVENTS_ONBLUR)] void onblur();
    [id(DISPID_HTMLELEMENTEVENTS_ONRESIZE)] void onresize();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAG)] VARIANT_BOOL ondrag();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGEND)] void ondragend();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGENTER)] VARIANT_BOOL ondragenter();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGOVER)] VARIANT_BOOL ondragover();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGLEAVE)] void ondragleave();
    [id(DISPID_HTMLELEMENTEVENTS_ONDROP)] VARIANT_BOOL ondrop();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFORECUT)] VARIANT_BOOL onbeforecut();
    [id(DISPID_HTMLELEMENTEVENTS_ONCUT)] VARIANT_BOOL oncut();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFORECOPY)] VARIANT_BOOL onbeforecopy();
    [id(DISPID_HTMLELEMENTEVENTS_ONCOPY)] VARIANT_BOOL oncopy();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREPASTE)] VARIANT_BOOL onbeforepaste();
    [id(DISPID_HTMLELEMENTEVENTS_ONPASTE)] VARIANT_BOOL onpaste();
    [id(DISPID_HTMLELEMENTEVENTS_ONCONTEXTMENU)] VARIANT_BOOL oncontextmenu();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWSDELETE)] void onrowsdelete();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWSINSERTED)] void onrowsinserted();
    [id(DISPID_HTMLELEMENTEVENTS_ONCELLCHANGE)] void oncellchange();
    [id(DISPID_HTMLELEMENTEVENTS_ONREADYSTATECHANGE)] void onreadystatechange();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREEDITFOCUS)] void onbeforeeditfocus();
    [id(DISPID_HTMLINPUTTEXTELEMENTEVENTS_ONCHANGE)] VARIANT_BOOL onchange();
    [id(DISPID_HTMLINPUTTEXTELEMENTEVENTS_ONSELECT)] void onselect();
    [id(DISPID_HTMLINPUTTEXTELEMENTEVENTS_ONLOAD)] void onload();
    [id(DISPID_HTMLINPUTTEXTELEMENTEVENTS_ONERROR)] void onerror();
    [id(DISPID_HTMLINPUTTEXTELEMENTEVENTS_ONABORT)] void onabort();
};
[
    hidden,
    uuid(3050f2af-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface HTMLInputFileElementEvents
{
properties:
methods:
    [id(DISPID_HTMLELEMENTEVENTS_ONHELP)] VARIANT_BOOL onhelp();
    [id(DISPID_HTMLELEMENTEVENTS_ONCLICK)] VARIANT_BOOL onclick();
    [id(DISPID_HTMLELEMENTEVENTS_ONDBLCLICK)] VARIANT_BOOL ondblclick();
    [id(DISPID_HTMLELEMENTEVENTS_ONKEYPRESS)] VARIANT_BOOL onkeypress();
    [id(DISPID_HTMLELEMENTEVENTS_ONKEYDOWN)] void onkeydown();
    [id(DISPID_HTMLELEMENTEVENTS_ONKEYUP)] void onkeyup();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEOUT)] void onmouseout();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEOVER)] void onmouseover();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEMOVE)] void onmousemove();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEDOWN)] void onmousedown();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEUP)] void onmouseup();
    [id(DISPID_HTMLELEMENTEVENTS_ONSELECTSTART)] VARIANT_BOOL onselectstart();
    [id(DISPID_HTMLELEMENTEVENTS_ONFILTERCHANGE)] void onfilterchange();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGSTART)] VARIANT_BOOL ondragstart();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREUPDATE)] VARIANT_BOOL onbeforeupdate();
    [id(DISPID_HTMLELEMENTEVENTS_ONAFTERUPDATE)] void onafterupdate();
    [id(DISPID_HTMLELEMENTEVENTS_ONERRORUPDATE)] VARIANT_BOOL onerrorupdate();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWEXIT)] VARIANT_BOOL onrowexit();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWENTER)] void onrowenter();
    [id(DISPID_HTMLELEMENTEVENTS_ONDATASETCHANGED)] void ondatasetchanged();
    [id(DISPID_HTMLELEMENTEVENTS_ONDATAAVAILABLE)] void ondataavailable();
    [id(DISPID_HTMLELEMENTEVENTS_ONDATASETCOMPLETE)] void ondatasetcomplete();
    [id(DISPID_HTMLELEMENTEVENTS_ONLOSECAPTURE)] void onlosecapture();
    [id(DISPID_HTMLELEMENTEVENTS_ONPROPERTYCHANGE)] void onpropertychange();
    [id(DISPID_HTMLELEMENTEVENTS_ONSCROLL)] void onscroll();
    [id(DISPID_HTMLELEMENTEVENTS_ONFOCUS)] void onfocus();
    [id(DISPID_HTMLELEMENTEVENTS_ONBLUR)] void onblur();
    [id(DISPID_HTMLELEMENTEVENTS_ONRESIZE)] void onresize();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAG)] VARIANT_BOOL ondrag();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGEND)] void ondragend();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGENTER)] VARIANT_BOOL ondragenter();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGOVER)] VARIANT_BOOL ondragover();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGLEAVE)] void ondragleave();
    [id(DISPID_HTMLELEMENTEVENTS_ONDROP)] VARIANT_BOOL ondrop();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFORECUT)] VARIANT_BOOL onbeforecut();
    [id(DISPID_HTMLELEMENTEVENTS_ONCUT)] VARIANT_BOOL oncut();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFORECOPY)] VARIANT_BOOL onbeforecopy();
    [id(DISPID_HTMLELEMENTEVENTS_ONCOPY)] VARIANT_BOOL oncopy();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREPASTE)] VARIANT_BOOL onbeforepaste();
    [id(DISPID_HTMLELEMENTEVENTS_ONPASTE)] VARIANT_BOOL onpaste();
    [id(DISPID_HTMLELEMENTEVENTS_ONCONTEXTMENU)] VARIANT_BOOL oncontextmenu();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWSDELETE)] void onrowsdelete();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWSINSERTED)] void onrowsinserted();
    [id(DISPID_HTMLELEMENTEVENTS_ONCELLCHANGE)] void oncellchange();
    [id(DISPID_HTMLELEMENTEVENTS_ONREADYSTATECHANGE)] void onreadystatechange();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREEDITFOCUS)] void onbeforeeditfocus();
    [id(DISPID_HTMLINPUTTEXTELEMENTEVENTS_ONCHANGE)] VARIANT_BOOL onchange();
    [id(DISPID_HTMLINPUTTEXTELEMENTEVENTS_ONSELECT)] void onselect();
    [id(DISPID_HTMLINPUTTEXTELEMENTEVENTS_ONLOAD)] void onload();
    [id(DISPID_HTMLINPUTTEXTELEMENTEVENTS_ONERROR)] void onerror();
    [id(DISPID_HTMLINPUTTEXTELEMENTEVENTS_ONABORT)] void onabort();
};
[
    hidden,
    uuid(3050f2c3-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface HTMLInputImageEvents
{
properties:
methods:
    [id(DISPID_HTMLELEMENTEVENTS_ONHELP)] VARIANT_BOOL onhelp();
    [id(DISPID_HTMLELEMENTEVENTS_ONCLICK)] VARIANT_BOOL onclick();
    [id(DISPID_HTMLELEMENTEVENTS_ONDBLCLICK)] VARIANT_BOOL ondblclick();
    [id(DISPID_HTMLELEMENTEVENTS_ONKEYPRESS)] VARIANT_BOOL onkeypress();
    [id(DISPID_HTMLELEMENTEVENTS_ONKEYDOWN)] void onkeydown();
    [id(DISPID_HTMLELEMENTEVENTS_ONKEYUP)] void onkeyup();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEOUT)] void onmouseout();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEOVER)] void onmouseover();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEMOVE)] void onmousemove();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEDOWN)] void onmousedown();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEUP)] void onmouseup();
    [id(DISPID_HTMLELEMENTEVENTS_ONSELECTSTART)] VARIANT_BOOL onselectstart();
    [id(DISPID_HTMLELEMENTEVENTS_ONFILTERCHANGE)] void onfilterchange();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGSTART)] VARIANT_BOOL ondragstart();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREUPDATE)] VARIANT_BOOL onbeforeupdate();
    [id(DISPID_HTMLELEMENTEVENTS_ONAFTERUPDATE)] void onafterupdate();
    [id(DISPID_HTMLELEMENTEVENTS_ONERRORUPDATE)] VARIANT_BOOL onerrorupdate();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWEXIT)] VARIANT_BOOL onrowexit();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWENTER)] void onrowenter();
    [id(DISPID_HTMLELEMENTEVENTS_ONDATASETCHANGED)] void ondatasetchanged();
    [id(DISPID_HTMLELEMENTEVENTS_ONDATAAVAILABLE)] void ondataavailable();
    [id(DISPID_HTMLELEMENTEVENTS_ONDATASETCOMPLETE)] void ondatasetcomplete();
    [id(DISPID_HTMLELEMENTEVENTS_ONLOSECAPTURE)] void onlosecapture();
    [id(DISPID_HTMLELEMENTEVENTS_ONPROPERTYCHANGE)] void onpropertychange();
    [id(DISPID_HTMLELEMENTEVENTS_ONSCROLL)] void onscroll();
    [id(DISPID_HTMLELEMENTEVENTS_ONFOCUS)] void onfocus();
    [id(DISPID_HTMLELEMENTEVENTS_ONBLUR)] void onblur();
    [id(DISPID_HTMLELEMENTEVENTS_ONRESIZE)] void onresize();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAG)] VARIANT_BOOL ondrag();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGEND)] void ondragend();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGENTER)] VARIANT_BOOL ondragenter();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGOVER)] VARIANT_BOOL ondragover();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGLEAVE)] void ondragleave();
    [id(DISPID_HTMLELEMENTEVENTS_ONDROP)] VARIANT_BOOL ondrop();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFORECUT)] VARIANT_BOOL onbeforecut();
    [id(DISPID_HTMLELEMENTEVENTS_ONCUT)] VARIANT_BOOL oncut();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFORECOPY)] VARIANT_BOOL onbeforecopy();
    [id(DISPID_HTMLELEMENTEVENTS_ONCOPY)] VARIANT_BOOL oncopy();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREPASTE)] VARIANT_BOOL onbeforepaste();
    [id(DISPID_HTMLELEMENTEVENTS_ONPASTE)] VARIANT_BOOL onpaste();
    [id(DISPID_HTMLELEMENTEVENTS_ONCONTEXTMENU)] VARIANT_BOOL oncontextmenu();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWSDELETE)] void onrowsdelete();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWSINSERTED)] void onrowsinserted();
    [id(DISPID_HTMLELEMENTEVENTS_ONCELLCHANGE)] void oncellchange();
    [id(DISPID_HTMLELEMENTEVENTS_ONREADYSTATECHANGE)] void onreadystatechange();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREEDITFOCUS)] void onbeforeeditfocus();
    [id(DISPID_HTMLINPUTIMAGEEVENTS_ONLOAD)] void onload();
    [id(DISPID_HTMLINPUTIMAGEEVENTS_ONERROR)] void onerror();
    [id(DISPID_HTMLINPUTIMAGEEVENTS_ONABORT)] void onabort();
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f5d2-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLInputElement : IDispatch
{
    [propput, id(DISPID_IHTMLINPUTELEMENT_TYPE)] HRESULT type([in] BSTR v);
    [propget, id(DISPID_IHTMLINPUTELEMENT_TYPE)] HRESULT type([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLINPUTELEMENT_VALUE), displaybind, bindable] HRESULT value([in] BSTR v);
    [propget, id(DISPID_IHTMLINPUTELEMENT_VALUE), displaybind, bindable] HRESULT value([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLINPUTELEMENT_NAME), displaybind, bindable] HRESULT name([in] BSTR v);
    [propget, id(DISPID_IHTMLINPUTELEMENT_NAME), displaybind, bindable] HRESULT name([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLINPUTELEMENT_STATUS)] HRESULT status([in] VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLINPUTELEMENT_STATUS)] HRESULT status([retval, out] VARIANT_BOOL * p);
    [propput, id(DISPID_IHTMLINPUTELEMENT_DISABLED), displaybind, bindable] HRESULT disabled([in] VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLINPUTELEMENT_DISABLED), displaybind, bindable] HRESULT disabled([retval, out] VARIANT_BOOL * p);
    [propget, id(DISPID_IHTMLINPUTELEMENT_FORM)] HRESULT form([retval, out] IHTMLFormElement* * p);
    [propput, id(DISPID_IHTMLINPUTELEMENT_SIZE), displaybind, bindable] HRESULT size([in] long v);
    [propget, id(DISPID_IHTMLINPUTELEMENT_SIZE), displaybind, bindable] HRESULT size([retval, out] long * p);
    [propput, id(DISPID_IHTMLINPUTELEMENT_MAXLENGTH), displaybind, bindable] HRESULT maxLength([in] long v);
    [propget, id(DISPID_IHTMLINPUTELEMENT_MAXLENGTH), displaybind, bindable] HRESULT maxLength([retval, out] long * p);
    [id(DISPID_IHTMLINPUTELEMENT_SELECT)] HRESULT select();
    [propput, id(DISPID_IHTMLINPUTELEMENT_ONCHANGE), displaybind, bindable] HRESULT onchange([in] VARIANT v);
    [propget, id(DISPID_IHTMLINPUTELEMENT_ONCHANGE), displaybind, bindable] HRESULT onchange([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLINPUTELEMENT_ONSELECT), displaybind, bindable] HRESULT onselect([in] VARIANT v);
    [propget, id(DISPID_IHTMLINPUTELEMENT_ONSELECT), displaybind, bindable] HRESULT onselect([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLINPUTELEMENT_DEFAULTVALUE), displaybind, bindable, hidden] HRESULT defaultValue([in] BSTR v);
    [propget, id(DISPID_IHTMLINPUTELEMENT_DEFAULTVALUE), displaybind, bindable, hidden] HRESULT defaultValue([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLINPUTELEMENT_READONLY), displaybind, bindable] HRESULT readOnly([in] VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLINPUTELEMENT_READONLY), displaybind, bindable] HRESULT readOnly([retval, out] VARIANT_BOOL * p);
    [id(DISPID_IHTMLINPUTELEMENT_CREATETEXTRANGE)] HRESULT createTextRange([retval, out] IHTMLTxtRange** range);
    [propput, id(DISPID_IHTMLINPUTELEMENT_INDETERMINATE), bindable] HRESULT indeterminate([in] VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLINPUTELEMENT_INDETERMINATE), bindable] HRESULT indeterminate([retval, out] VARIANT_BOOL * p);
    [propput, id(DISPID_IHTMLINPUTELEMENT_DEFAULTCHECKED), bindable] HRESULT defaultChecked([in] VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLINPUTELEMENT_DEFAULTCHECKED), bindable] HRESULT defaultChecked([retval, out] VARIANT_BOOL * p);
    [propput, id(DISPID_IHTMLINPUTELEMENT_CHECKED), bindable] HRESULT checked([in] VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLINPUTELEMENT_CHECKED), bindable] HRESULT checked([retval, out] VARIANT_BOOL * p);
    [propput, id(DISPID_IHTMLINPUTELEMENT_BORDER), displaybind, bindable] HRESULT border([in] VARIANT v);
    [propget, id(DISPID_IHTMLINPUTELEMENT_BORDER), displaybind, bindable] HRESULT border([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLINPUTELEMENT_VSPACE), displaybind, bindable] HRESULT vspace([in] long v);
    [propget, id(DISPID_IHTMLINPUTELEMENT_VSPACE), displaybind, bindable] HRESULT vspace([retval, out] long * p);
    [propput, id(DISPID_IHTMLINPUTELEMENT_HSPACE), displaybind, bindable] HRESULT hspace([in] long v);
    [propget, id(DISPID_IHTMLINPUTELEMENT_HSPACE), displaybind, bindable] HRESULT hspace([retval, out] long * p);
    [propput, id(DISPID_IHTMLINPUTELEMENT_ALT), displaybind, bindable] HRESULT alt([in] BSTR v);
    [propget, id(DISPID_IHTMLINPUTELEMENT_ALT), displaybind, bindable] HRESULT alt([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLINPUTELEMENT_SRC), displaybind, bindable] HRESULT src([in] BSTR v);
    [propget, id(DISPID_IHTMLINPUTELEMENT_SRC), displaybind, bindable] HRESULT src([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLINPUTELEMENT_LOWSRC), displaybind, bindable] HRESULT lowsrc([in] BSTR v);
    [propget, id(DISPID_IHTMLINPUTELEMENT_LOWSRC), displaybind, bindable] HRESULT lowsrc([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLINPUTELEMENT_VRML), displaybind, bindable] HRESULT vrml([in] BSTR v);
    [propget, id(DISPID_IHTMLINPUTELEMENT_VRML), displaybind, bindable] HRESULT vrml([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLINPUTELEMENT_DYNSRC), displaybind, bindable] HRESULT dynsrc([in] BSTR v);
    [propget, id(DISPID_IHTMLINPUTELEMENT_DYNSRC), displaybind, bindable] HRESULT dynsrc([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLINPUTELEMENT_READYSTATE)] HRESULT readyState([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLINPUTELEMENT_COMPLETE)] HRESULT complete([retval, out] VARIANT_BOOL * p);
    [propput, id(DISPID_IHTMLINPUTELEMENT_LOOP), displaybind, bindable] HRESULT loop([in] VARIANT v);
    [propget, id(DISPID_IHTMLINPUTELEMENT_LOOP), displaybind, bindable] HRESULT loop([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLINPUTELEMENT_ALIGN), displaybind, bindable] HRESULT align([in] BSTR v);
    [propget, id(DISPID_IHTMLINPUTELEMENT_ALIGN), displaybind, bindable] HRESULT align([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLINPUTELEMENT_ONLOAD), displaybind, bindable] HRESULT onload([in] VARIANT v);
    [propget, id(DISPID_IHTMLINPUTELEMENT_ONLOAD), displaybind, bindable] HRESULT onload([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLINPUTELEMENT_ONERROR), displaybind, bindable] HRESULT onerror([in] VARIANT v);
    [propget, id(DISPID_IHTMLINPUTELEMENT_ONERROR), displaybind, bindable] HRESULT onerror([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLINPUTELEMENT_ONABORT), displaybind, bindable] HRESULT onabort([in] VARIANT v);
    [propget, id(DISPID_IHTMLINPUTELEMENT_ONABORT), displaybind, bindable] HRESULT onabort([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLINPUTELEMENT_WIDTH)] HRESULT width([in] long v);
    [propget, id(DISPID_IHTMLINPUTELEMENT_WIDTH)] HRESULT width([retval, out] long * p);
    [propput, id(DISPID_IHTMLINPUTELEMENT_HEIGHT)] HRESULT height([in] long v);
    [propget, id(DISPID_IHTMLINPUTELEMENT_HEIGHT)] HRESULT height([retval, out] long * p);
    [propput, id(DISPID_IHTMLINPUTELEMENT_START), displaybind, bindable] HRESULT start([in] BSTR v);
    [propget, id(DISPID_IHTMLINPUTELEMENT_START), displaybind, bindable] HRESULT start([retval, out] BSTR * p);
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f2b2-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLInputButtonElement : IDispatch
{
    [propget, id(DISPID_IHTMLINPUTBUTTONELEMENT_TYPE)] HRESULT type([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLINPUTBUTTONELEMENT_VALUE), displaybind, bindable] HRESULT value([in] BSTR v);
    [propget, id(DISPID_IHTMLINPUTBUTTONELEMENT_VALUE), displaybind, bindable] HRESULT value([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLINPUTBUTTONELEMENT_NAME), displaybind, bindable] HRESULT name([in] BSTR v);
    [propget, id(DISPID_IHTMLINPUTBUTTONELEMENT_NAME), displaybind, bindable] HRESULT name([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLINPUTBUTTONELEMENT_STATUS)] HRESULT status([in] VARIANT v);
    [propget, id(DISPID_IHTMLINPUTBUTTONELEMENT_STATUS)] HRESULT status([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLINPUTBUTTONELEMENT_DISABLED), displaybind, bindable] HRESULT disabled([in] VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLINPUTBUTTONELEMENT_DISABLED), displaybind, bindable] HRESULT disabled([retval, out] VARIANT_BOOL * p);
    [propget, id(DISPID_IHTMLINPUTBUTTONELEMENT_FORM)] HRESULT form([retval, out] IHTMLFormElement* * p);
    [id(DISPID_IHTMLINPUTBUTTONELEMENT_CREATETEXTRANGE)] HRESULT createTextRange([retval, out] IHTMLTxtRange** range);
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f2a4-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLInputHiddenElement : IDispatch
{
    [propget, id(DISPID_IHTMLINPUTHIDDENELEMENT_TYPE)] HRESULT type([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLINPUTHIDDENELEMENT_VALUE), displaybind, bindable] HRESULT value([in] BSTR v);
    [propget, id(DISPID_IHTMLINPUTHIDDENELEMENT_VALUE), displaybind, bindable] HRESULT value([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLINPUTHIDDENELEMENT_NAME), displaybind, bindable] HRESULT name([in] BSTR v);
    [propget, id(DISPID_IHTMLINPUTHIDDENELEMENT_NAME), displaybind, bindable] HRESULT name([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLINPUTHIDDENELEMENT_STATUS)] HRESULT status([in] VARIANT v);
    [propget, id(DISPID_IHTMLINPUTHIDDENELEMENT_STATUS)] HRESULT status([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLINPUTHIDDENELEMENT_DISABLED), displaybind, bindable] HRESULT disabled([in] VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLINPUTHIDDENELEMENT_DISABLED), displaybind, bindable] HRESULT disabled([retval, out] VARIANT_BOOL * p);
    [propget, id(DISPID_IHTMLINPUTHIDDENELEMENT_FORM)] HRESULT form([retval, out] IHTMLFormElement* * p);
    [id(DISPID_IHTMLINPUTHIDDENELEMENT_CREATETEXTRANGE)] HRESULT createTextRange([retval, out] IHTMLTxtRange** range);
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f2a6-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLInputTextElement : IDispatch
{
    [propget, id(DISPID_IHTMLINPUTTEXTELEMENT_TYPE)] HRESULT type([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLINPUTTEXTELEMENT_VALUE), displaybind, bindable] HRESULT value([in] BSTR v);
    [propget, id(DISPID_IHTMLINPUTTEXTELEMENT_VALUE), displaybind, bindable] HRESULT value([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLINPUTTEXTELEMENT_NAME), displaybind, bindable] HRESULT name([in] BSTR v);
    [propget, id(DISPID_IHTMLINPUTTEXTELEMENT_NAME), displaybind, bindable] HRESULT name([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLINPUTTEXTELEMENT_STATUS)] HRESULT status([in] VARIANT v);
    [propget, id(DISPID_IHTMLINPUTTEXTELEMENT_STATUS)] HRESULT status([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLINPUTTEXTELEMENT_DISABLED), displaybind, bindable] HRESULT disabled([in] VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLINPUTTEXTELEMENT_DISABLED), displaybind, bindable] HRESULT disabled([retval, out] VARIANT_BOOL * p);
    [propget, id(DISPID_IHTMLINPUTTEXTELEMENT_FORM)] HRESULT form([retval, out] IHTMLFormElement* * p);
    [propput, id(DISPID_IHTMLINPUTTEXTELEMENT_DEFAULTVALUE), displaybind, bindable, hidden] HRESULT defaultValue([in] BSTR v);
    [propget, id(DISPID_IHTMLINPUTTEXTELEMENT_DEFAULTVALUE), displaybind, bindable, hidden] HRESULT defaultValue([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLINPUTTEXTELEMENT_SIZE), displaybind, bindable] HRESULT size([in] long v);
    [propget, id(DISPID_IHTMLINPUTTEXTELEMENT_SIZE), displaybind, bindable] HRESULT size([retval, out] long * p);
    [propput, id(DISPID_IHTMLINPUTTEXTELEMENT_MAXLENGTH), displaybind, bindable] HRESULT maxLength([in] long v);
    [propget, id(DISPID_IHTMLINPUTTEXTELEMENT_MAXLENGTH), displaybind, bindable] HRESULT maxLength([retval, out] long * p);
    [id(DISPID_IHTMLINPUTTEXTELEMENT_SELECT)] HRESULT select();
    [propput, id(DISPID_IHTMLINPUTTEXTELEMENT_ONCHANGE), displaybind, bindable] HRESULT onchange([in] VARIANT v);
    [propget, id(DISPID_IHTMLINPUTTEXTELEMENT_ONCHANGE), displaybind, bindable] HRESULT onchange([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLINPUTTEXTELEMENT_ONSELECT), displaybind, bindable] HRESULT onselect([in] VARIANT v);
    [propget, id(DISPID_IHTMLINPUTTEXTELEMENT_ONSELECT), displaybind, bindable] HRESULT onselect([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLINPUTTEXTELEMENT_READONLY), displaybind, bindable] HRESULT readOnly([in] VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLINPUTTEXTELEMENT_READONLY), displaybind, bindable] HRESULT readOnly([retval, out] VARIANT_BOOL * p);
    [id(DISPID_IHTMLINPUTTEXTELEMENT_CREATETEXTRANGE)] HRESULT createTextRange([retval, out] IHTMLTxtRange** range);
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f2ad-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLInputFileElement : IDispatch
{
    [propget, id(DISPID_IHTMLINPUTFILEELEMENT_TYPE)] HRESULT type([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLINPUTFILEELEMENT_NAME), displaybind, bindable] HRESULT name([in] BSTR v);
    [propget, id(DISPID_IHTMLINPUTFILEELEMENT_NAME), displaybind, bindable] HRESULT name([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLINPUTFILEELEMENT_STATUS)] HRESULT status([in] VARIANT v);
    [propget, id(DISPID_IHTMLINPUTFILEELEMENT_STATUS)] HRESULT status([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLINPUTFILEELEMENT_DISABLED), displaybind, bindable] HRESULT disabled([in] VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLINPUTFILEELEMENT_DISABLED), displaybind, bindable] HRESULT disabled([retval, out] VARIANT_BOOL * p);
    [propget, id(DISPID_IHTMLINPUTFILEELEMENT_FORM)] HRESULT form([retval, out] IHTMLFormElement* * p);
    [propput, id(DISPID_IHTMLINPUTFILEELEMENT_SIZE), displaybind, bindable] HRESULT size([in] long v);
    [propget, id(DISPID_IHTMLINPUTFILEELEMENT_SIZE), displaybind, bindable] HRESULT size([retval, out] long * p);
    [propput, id(DISPID_IHTMLINPUTFILEELEMENT_MAXLENGTH), displaybind, bindable] HRESULT maxLength([in] long v);
    [propget, id(DISPID_IHTMLINPUTFILEELEMENT_MAXLENGTH), displaybind, bindable] HRESULT maxLength([retval, out] long * p);
    [id(DISPID_IHTMLINPUTFILEELEMENT_SELECT)] HRESULT select();
    [propput, id(DISPID_IHTMLINPUTFILEELEMENT_ONCHANGE), displaybind, bindable] HRESULT onchange([in] VARIANT v);
    [propget, id(DISPID_IHTMLINPUTFILEELEMENT_ONCHANGE), displaybind, bindable] HRESULT onchange([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLINPUTFILEELEMENT_ONSELECT), displaybind, bindable] HRESULT onselect([in] VARIANT v);
    [propget, id(DISPID_IHTMLINPUTFILEELEMENT_ONSELECT), displaybind, bindable] HRESULT onselect([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLINPUTFILEELEMENT_VALUE), displaybind, bindable] HRESULT value([in] BSTR v);
    [propget, id(DISPID_IHTMLINPUTFILEELEMENT_VALUE), displaybind, bindable] HRESULT value([retval, out] BSTR * p);
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f2bc-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLOptionButtonElement : IDispatch
{
    [propput, id(DISPID_IHTMLOPTIONBUTTONELEMENT_VALUE), displaybind, bindable] HRESULT value([in] BSTR v);
    [propget, id(DISPID_IHTMLOPTIONBUTTONELEMENT_VALUE), displaybind, bindable] HRESULT value([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLOPTIONBUTTONELEMENT_TYPE)] HRESULT type([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLOPTIONBUTTONELEMENT_NAME), displaybind, bindable] HRESULT name([in] BSTR v);
    [propget, id(DISPID_IHTMLOPTIONBUTTONELEMENT_NAME), displaybind, bindable] HRESULT name([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLOPTIONBUTTONELEMENT_CHECKED), bindable] HRESULT checked([in] VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLOPTIONBUTTONELEMENT_CHECKED), bindable] HRESULT checked([retval, out] VARIANT_BOOL * p);
    [propput, id(DISPID_IHTMLOPTIONBUTTONELEMENT_DEFAULTCHECKED), bindable] HRESULT defaultChecked([in] VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLOPTIONBUTTONELEMENT_DEFAULTCHECKED), bindable] HRESULT defaultChecked([retval, out] VARIANT_BOOL * p);
    [propput, id(DISPID_IHTMLOPTIONBUTTONELEMENT_ONCHANGE), displaybind, bindable] HRESULT onchange([in] VARIANT v);
    [propget, id(DISPID_IHTMLOPTIONBUTTONELEMENT_ONCHANGE), displaybind, bindable] HRESULT onchange([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLOPTIONBUTTONELEMENT_DISABLED), displaybind, bindable] HRESULT disabled([in] VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLOPTIONBUTTONELEMENT_DISABLED), displaybind, bindable] HRESULT disabled([retval, out] VARIANT_BOOL * p);
    [propput, id(DISPID_IHTMLOPTIONBUTTONELEMENT_STATUS)] HRESULT status([in] VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLOPTIONBUTTONELEMENT_STATUS)] HRESULT status([retval, out] VARIANT_BOOL * p);
    [propput, id(DISPID_IHTMLOPTIONBUTTONELEMENT_INDETERMINATE), bindable] HRESULT indeterminate([in] VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLOPTIONBUTTONELEMENT_INDETERMINATE), bindable] HRESULT indeterminate([retval, out] VARIANT_BOOL * p);
    [propget, id(DISPID_IHTMLOPTIONBUTTONELEMENT_FORM)] HRESULT form([retval, out] IHTMLFormElement* * p);
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f2c2-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLInputImage : IDispatch
{
    [propget, id(DISPID_IHTMLINPUTIMAGE_TYPE)] HRESULT type([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLINPUTIMAGE_DISABLED), displaybind, bindable] HRESULT disabled([in] VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLINPUTIMAGE_DISABLED), displaybind, bindable] HRESULT disabled([retval, out] VARIANT_BOOL * p);
    [propput, id(DISPID_IHTMLINPUTIMAGE_BORDER), displaybind, bindable] HRESULT border([in] VARIANT v);
    [propget, id(DISPID_IHTMLINPUTIMAGE_BORDER), displaybind, bindable] HRESULT border([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLINPUTIMAGE_VSPACE), displaybind, bindable] HRESULT vspace([in] long v);
    [propget, id(DISPID_IHTMLINPUTIMAGE_VSPACE), displaybind, bindable] HRESULT vspace([retval, out] long * p);
    [propput, id(DISPID_IHTMLINPUTIMAGE_HSPACE), displaybind, bindable] HRESULT hspace([in] long v);
    [propget, id(DISPID_IHTMLINPUTIMAGE_HSPACE), displaybind, bindable] HRESULT hspace([retval, out] long * p);
    [propput, id(DISPID_IHTMLINPUTIMAGE_ALT), displaybind, bindable] HRESULT alt([in] BSTR v);
    [propget, id(DISPID_IHTMLINPUTIMAGE_ALT), displaybind, bindable] HRESULT alt([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLINPUTIMAGE_SRC), displaybind, bindable] HRESULT src([in] BSTR v);
    [propget, id(DISPID_IHTMLINPUTIMAGE_SRC), displaybind, bindable] HRESULT src([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLINPUTIMAGE_LOWSRC), displaybind, bindable] HRESULT lowsrc([in] BSTR v);
    [propget, id(DISPID_IHTMLINPUTIMAGE_LOWSRC), displaybind, bindable] HRESULT lowsrc([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLINPUTIMAGE_VRML), displaybind, bindable] HRESULT vrml([in] BSTR v);
    [propget, id(DISPID_IHTMLINPUTIMAGE_VRML), displaybind, bindable] HRESULT vrml([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLINPUTIMAGE_DYNSRC), displaybind, bindable] HRESULT dynsrc([in] BSTR v);
    [propget, id(DISPID_IHTMLINPUTIMAGE_DYNSRC), displaybind, bindable] HRESULT dynsrc([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLINPUTIMAGE_READYSTATE)] HRESULT readyState([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLINPUTIMAGE_COMPLETE)] HRESULT complete([retval, out] VARIANT_BOOL * p);
    [propput, id(DISPID_IHTMLINPUTIMAGE_LOOP), displaybind, bindable] HRESULT loop([in] VARIANT v);
    [propget, id(DISPID_IHTMLINPUTIMAGE_LOOP), displaybind, bindable] HRESULT loop([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLINPUTIMAGE_ALIGN), displaybind, bindable] HRESULT align([in] BSTR v);
    [propget, id(DISPID_IHTMLINPUTIMAGE_ALIGN), displaybind, bindable] HRESULT align([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLINPUTIMAGE_ONLOAD), displaybind, bindable] HRESULT onload([in] VARIANT v);
    [propget, id(DISPID_IHTMLINPUTIMAGE_ONLOAD), displaybind, bindable] HRESULT onload([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLINPUTIMAGE_ONERROR), displaybind, bindable] HRESULT onerror([in] VARIANT v);
    [propget, id(DISPID_IHTMLINPUTIMAGE_ONERROR), displaybind, bindable] HRESULT onerror([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLINPUTIMAGE_ONABORT), displaybind, bindable] HRESULT onabort([in] VARIANT v);
    [propget, id(DISPID_IHTMLINPUTIMAGE_ONABORT), displaybind, bindable] HRESULT onabort([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLINPUTIMAGE_NAME), displaybind, bindable] HRESULT name([in] BSTR v);
    [propget, id(DISPID_IHTMLINPUTIMAGE_NAME), displaybind, bindable] HRESULT name([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLINPUTIMAGE_WIDTH)] HRESULT width([in] long v);
    [propget, id(DISPID_IHTMLINPUTIMAGE_WIDTH)] HRESULT width([retval, out] long * p);
    [propput, id(DISPID_IHTMLINPUTIMAGE_HEIGHT)] HRESULT height([in] long v);
    [propget, id(DISPID_IHTMLINPUTIMAGE_HEIGHT)] HRESULT height([retval, out] long * p);
    [propput, id(DISPID_IHTMLINPUTIMAGE_START), displaybind, bindable] HRESULT start([in] BSTR v);
    [propget, id(DISPID_IHTMLINPUTIMAGE_START), displaybind, bindable] HRESULT start([retval, out] BSTR * p);
};
[
    hidden,
    uuid(3050f57d-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTMLInputElement
{
properties:
methods:
    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)] void setAttribute([in] BSTR strAttributeName,[in] VARIANT AttributeValue,[defaultvalue(1), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)] VARIANT getAttribute([in] BSTR strAttributeName,[defaultvalue(0), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)] VARIANT_BOOL removeAttribute([in] BSTR strAttributeName,[defaultvalue(1), in] LONG lFlags);
    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] void className(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] BSTR className();
    [propput, id(DISPID_IHTMLELEMENT_ID), bindable] void id(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_ID), bindable] BSTR id();
    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)] BSTR tagName();
    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)] IHTMLElement* parentElement();
    [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable] IHTMLStyle* style();
    [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] void onhelp(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] VARIANT onhelp();
    [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] void onclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] VARIANT onclick();
    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] void ondblclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] VARIANT ondblclick();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] void onkeydown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] VARIANT onkeydown();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] void onkeyup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] VARIANT onkeyup();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] void onkeypress(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] VARIANT onkeypress();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] void onmouseout(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] VARIANT onmouseout();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] void onmouseover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] VARIANT onmouseover();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] void onmousemove(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] VARIANT onmousemove();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] void onmousedown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] VARIANT onmousedown();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] void onmouseup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] VARIANT onmouseup();
    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)] IDispatch* document();
    [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] void title(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] BSTR title();
    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] void language(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] BSTR language();
    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] void onselectstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] VARIANT onselectstart();
    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)] void scrollIntoView([optional, in] VARIANT varargStart);
    [id(DISPID_IHTMLELEMENT_CONTAINS)] VARIANT_BOOL contains([in] IHTMLElement* pChild);
    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable] long sourceIndex();
    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)] VARIANT recordNumber();
    [propput, id(DISPID_IHTMLELEMENT_LANG)] void lang(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANG)] BSTR lang();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)] long offsetLeft();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)] long offsetTop();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)] long offsetWidth();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)] long offsetHeight();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)] IHTMLElement* offsetParent();
    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)] void innerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)] BSTR innerHTML();
    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)] void innerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)] BSTR innerText();
    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)] void outerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)] BSTR outerHTML();
    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)] void outerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)] BSTR outerText();
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)] void insertAdjacentHTML([in] BSTR where,[in] BSTR html);
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)] void insertAdjacentText([in] BSTR where,[in] BSTR text);
    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)] IHTMLElement* parentTextEdit();
    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)] VARIANT_BOOL isTextEdit();
    [id(DISPID_IHTMLELEMENT_CLICK)] void click();
    [propget, id(DISPID_IHTMLELEMENT_FILTERS)] IHTMLFiltersCollection* filters();
    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] void ondragstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] VARIANT ondragstart();
    [id(DISPID_IHTMLELEMENT_TOSTRING)] BSTR toString();
    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] void onbeforeupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] VARIANT onbeforeupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] void onafterupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] VARIANT onafterupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] void onerrorupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] VARIANT onerrorupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] void onrowexit(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] VARIANT onrowexit();
    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] void onrowenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] VARIANT onrowenter();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] void ondatasetchanged(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] VARIANT ondatasetchanged();
    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] void ondataavailable(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] VARIANT ondataavailable();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] void ondatasetcomplete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] VARIANT ondatasetcomplete();
    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] void onfilterchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] VARIANT onfilterchange();
    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)] IDispatch* children();
    [propget, id(DISPID_IHTMLELEMENT_ALL)] IDispatch* all();
    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)] BSTR scopeName();
    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)] void setCapture([defaultvalue(-1), in] VARIANT_BOOL containerCapture);
    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)] void releaseCapture();
    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] void onlosecapture(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] VARIANT onlosecapture();
    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)] BSTR componentFromPoint([in] long x,[in] long y);
    [id(DISPID_IHTMLELEMENT2_DOSCROLL)] void doScroll([optional, in] VARIANT component);
    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] void onscroll(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] VARIANT onscroll();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] void ondrag(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] VARIANT ondrag();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] void ondragend(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] VARIANT ondragend();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] void ondragenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] VARIANT ondragenter();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] void ondragover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] VARIANT ondragover();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] void ondragleave(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] VARIANT ondragleave();
    [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] void ondrop(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] VARIANT ondrop();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] void onbeforecut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] VARIANT onbeforecut();
    [propput, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] void oncut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] VARIANT oncut();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] void onbeforecopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] VARIANT onbeforecopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] void oncopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] VARIANT oncopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] void onbeforepaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] VARIANT onbeforepaste();
    [propput, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] void onpaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] VARIANT onpaste();
    [propget, id(DISPID_IHTMLELEMENT2_CURRENTSTYLE), nonbrowsable] IHTMLCurrentStyle* currentStyle();
    [propput, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] void onpropertychange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] VARIANT onpropertychange();
    [id(DISPID_IHTMLELEMENT2_GETCLIENTRECTS)] IHTMLRectCollection* getClientRects();
    [id(DISPID_IHTMLELEMENT2_GETBOUNDINGCLIENTRECT)] IHTMLRect* getBoundingClientRect();
    [id(DISPID_IHTMLELEMENT2_SETEXPRESSION)] void setExpression([in] BSTR propname,[in] BSTR expression,[defaultvalue(""), in] BSTR language);
    [id(DISPID_IHTMLELEMENT2_GETEXPRESSION)] VARIANT getExpression([in] BSTR propname);
    [id(DISPID_IHTMLELEMENT2_REMOVEEXPRESSION)] VARIANT_BOOL removeExpression([in] BSTR propname);
    [propput, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] void tabIndex(short v);
    [propget, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] short tabIndex();
    [id(DISPID_IHTMLELEMENT2_FOCUS)] void focus();
    [propput, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] void accessKey(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] BSTR accessKey();
    [propput, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] void onblur(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] VARIANT onblur();
    [propput, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] void onfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] VARIANT onfocus();
    [propput, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] void onresize(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] VARIANT onresize();
    [id(DISPID_IHTMLELEMENT2_BLUR)] void blur();
    [id(DISPID_IHTMLELEMENT2_ADDFILTER)] void addFilter([in] IUnknown* pUnk);
    [id(DISPID_IHTMLELEMENT2_REMOVEFILTER)] void removeFilter([in] IUnknown* pUnk);
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTHEIGHT), displaybind, bindable] long clientHeight();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTWIDTH), displaybind, bindable] long clientWidth();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTTOP), displaybind, bindable] long clientTop();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTLEFT), displaybind, bindable] long clientLeft();
    [id(DISPID_IHTMLELEMENT2_ATTACHEVENT)] VARIANT_BOOL attachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [id(DISPID_IHTMLELEMENT2_DETACHEVENT)] void detachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATE)] VARIANT readyState();
    [propput, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] void onreadystatechange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] VARIANT onreadystatechange();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] void onrowsdelete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] VARIANT onrowsdelete();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] void onrowsinserted(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] VARIANT onrowsinserted();
    [propput, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] void oncellchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] VARIANT oncellchange();
    [propput, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] void dir(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] BSTR dir();
    [id(DISPID_IHTMLELEMENT2_CREATECONTROLRANGE)] IDispatch* createControlRange();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLHEIGHT), displaybind, bindable] long scrollHeight();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLWIDTH), displaybind, bindable] long scrollWidth();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] void scrollTop(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] long scrollTop();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] void scrollLeft(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] long scrollLeft();
    [id(DISPID_IHTMLELEMENT2_CLEARATTRIBUTES)] void clearAttributes();
    [id(DISPID_IHTMLELEMENT2_MERGEATTRIBUTES)] void mergeAttributes([in] IHTMLElement* mergeThis);
    [propput, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] void oncontextmenu(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] VARIANT oncontextmenu();
    [id(DISPID_IHTMLELEMENT2_INSERTADJACENTELEMENT)] IHTMLElement* insertAdjacentElement([in] BSTR where,[in] IHTMLElement* insertedElement);
    [id(DISPID_IHTMLELEMENT2_APPLYELEMENT)] IHTMLElement* applyElement([in] IHTMLElement* apply,[in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_GETADJACENTTEXT)] BSTR getAdjacentText([in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_REPLACEADJACENTTEXT)] BSTR replaceAdjacentText([in] BSTR where,[in] BSTR newText);
    [propget, id(DISPID_IHTMLELEMENT2_CANHAVECHILDREN)] VARIANT_BOOL canHaveChildren();
    [id(DISPID_IHTMLELEMENT2_ADDBEHAVIOR)] long addBehavior([in] BSTR bstrUrl,[optional, in] VARIANT* pvarFactory);
    [id(DISPID_IHTMLELEMENT2_REMOVEBEHAVIOR)] VARIANT_BOOL removeBehavior([in] long cookie);
    [propget, id(DISPID_IHTMLELEMENT2_RUNTIMESTYLE), nonbrowsable] IHTMLStyle* runtimeStyle();
    [propget, id(DISPID_IHTMLELEMENT2_BEHAVIORURNS)] IDispatch* behaviorUrns();
    [propput, id(DISPID_IHTMLELEMENT2_TAGURN)] void tagUrn(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_TAGURN)] BSTR tagUrn();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] void onbeforeeditfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] VARIANT onbeforeeditfocus();
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATEVALUE), hidden, restricted] long readyStateValue();
    [id(DISPID_IHTMLELEMENT2_GETELEMENTSBYTAGNAME)] IHTMLElementCollection* getElementsByTagName([in] BSTR v);
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUENUMBER), hidden] long uniqueNumber();
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUEID), hidden] BSTR uniqueID();
    [propget, id(DISPID_IHTMLDOMNODE_NODETYPE)] long nodeType();
    [propget, id(DISPID_IHTMLDOMNODE_PARENTNODE)] IHTMLDOMNode* parentNode();
    [id(DISPID_IHTMLDOMNODE_HASCHILDNODES)] VARIANT_BOOL hasChildNodes();
    [propget, id(DISPID_IHTMLDOMNODE_CHILDNODES)] IDispatch* childNodes();
    [propget, id(DISPID_IHTMLDOMNODE_ATTRIBUTES)] IDispatch* attributes();
    [id(DISPID_IHTMLDOMNODE_INSERTBEFORE)] IHTMLDOMNode* insertBefore([in] IHTMLDOMNode* newChild,[optional, in] VARIANT refChild);
    [id(DISPID_IHTMLDOMNODE_REMOVECHILD)] IHTMLDOMNode* removeChild([in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_REPLACECHILD)] IHTMLDOMNode* replaceChild([in] IHTMLDOMNode* newChild,[in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_CLONENODE)] IHTMLDOMNode* cloneNode([in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_REMOVENODE)] IHTMLDOMNode* removeNode([defaultvalue(0), in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_SWAPNODE)] IHTMLDOMNode* swapNode([in] IHTMLDOMNode* otherNode);
    [id(DISPID_IHTMLDOMNODE_REPLACENODE)] IHTMLDOMNode* replaceNode([in] IHTMLDOMNode* replacement);
    [id(DISPID_IHTMLDOMNODE_APPENDCHILD)] IHTMLDOMNode* appendChild([in] IHTMLDOMNode* newChild);
    [propget, id(DISPID_IHTMLDOMNODE_NODENAME)] BSTR nodeName();
    [propput, id(DISPID_IHTMLDOMNODE_NODEVALUE)] void nodeValue(VARIANT v);
    [propget, id(DISPID_IHTMLDOMNODE_NODEVALUE)] VARIANT nodeValue();
    [propget, id(DISPID_IHTMLDOMNODE_FIRSTCHILD)] IHTMLDOMNode* firstChild();
    [propget, id(DISPID_IHTMLDOMNODE_LASTCHILD)] IHTMLDOMNode* lastChild();
    [propget, id(DISPID_IHTMLDOMNODE_PREVIOUSSIBLING)] IHTMLDOMNode* previousSibling();
    [propget, id(DISPID_IHTMLDOMNODE_NEXTSIBLING)] IHTMLDOMNode* nextSibling();
    [propput, id(DISPID_IHTMLDATABINDING_DATAFLD)] void dataFld(BSTR v);
    [propget, id(DISPID_IHTMLDATABINDING_DATAFLD)] BSTR dataFld();
    [propput, id(DISPID_IHTMLDATABINDING_DATASRC)] void dataSrc(BSTR v);
    [propget, id(DISPID_IHTMLDATABINDING_DATASRC)] BSTR dataSrc();
    [propput, id(DISPID_IHTMLDATABINDING_DATAFORMATAS)] void dataFormatAs(BSTR v);
    [propget, id(DISPID_IHTMLDATABINDING_DATAFORMATAS)] BSTR dataFormatAs();
    [propput, id(DISPID_IHTMLINPUTELEMENT_TYPE)] void type(BSTR v);
    [propget, id(DISPID_IHTMLINPUTELEMENT_TYPE)] BSTR type();
    [propput, id(DISPID_IHTMLINPUTELEMENT_VALUE), displaybind, bindable] void value(BSTR v);
    [propget, id(DISPID_IHTMLINPUTELEMENT_VALUE), displaybind, bindable] BSTR value();
    [propput, id(DISPID_IHTMLINPUTELEMENT_NAME), displaybind, bindable] void name(BSTR v);
    [propget, id(DISPID_IHTMLINPUTELEMENT_NAME), displaybind, bindable] BSTR name();
    [propput, id(DISPID_IHTMLINPUTELEMENT_STATUS)] void status(VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLINPUTELEMENT_STATUS)] VARIANT_BOOL status();
    [propput, id(DISPID_IHTMLINPUTELEMENT_DISABLED), displaybind, bindable] void disabled(VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLINPUTELEMENT_DISABLED), displaybind, bindable] VARIANT_BOOL disabled();
    [propget, id(DISPID_IHTMLINPUTELEMENT_FORM)] IHTMLFormElement* form();
    [propput, id(DISPID_IHTMLINPUTELEMENT_SIZE), displaybind, bindable] void size(long v);
    [propget, id(DISPID_IHTMLINPUTELEMENT_SIZE), displaybind, bindable] long size();
    [propput, id(DISPID_IHTMLINPUTELEMENT_MAXLENGTH), displaybind, bindable] void maxLength(long v);
    [propget, id(DISPID_IHTMLINPUTELEMENT_MAXLENGTH), displaybind, bindable] long maxLength();
    [id(DISPID_IHTMLINPUTELEMENT_SELECT)] void select();
    [propput, id(DISPID_IHTMLINPUTELEMENT_ONCHANGE), displaybind, bindable] void onchange(VARIANT v);
    [propget, id(DISPID_IHTMLINPUTELEMENT_ONCHANGE), displaybind, bindable] VARIANT onchange();
    [propput, id(DISPID_IHTMLINPUTELEMENT_ONSELECT), displaybind, bindable] void onselect(VARIANT v);
    [propget, id(DISPID_IHTMLINPUTELEMENT_ONSELECT), displaybind, bindable] VARIANT onselect();
    [propput, id(DISPID_IHTMLINPUTELEMENT_DEFAULTVALUE), displaybind, bindable, hidden] void defaultValue(BSTR v);
    [propget, id(DISPID_IHTMLINPUTELEMENT_DEFAULTVALUE), displaybind, bindable, hidden] BSTR defaultValue();
    [propput, id(DISPID_IHTMLINPUTELEMENT_READONLY), displaybind, bindable] void readOnly(VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLINPUTELEMENT_READONLY), displaybind, bindable] VARIANT_BOOL readOnly();
    [id(DISPID_IHTMLINPUTELEMENT_CREATETEXTRANGE)] IHTMLTxtRange* createTextRange();
    [propput, id(DISPID_IHTMLINPUTELEMENT_INDETERMINATE), bindable] void indeterminate(VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLINPUTELEMENT_INDETERMINATE), bindable] VARIANT_BOOL indeterminate();
    [propput, id(DISPID_IHTMLINPUTELEMENT_DEFAULTCHECKED), bindable] void defaultChecked(VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLINPUTELEMENT_DEFAULTCHECKED), bindable] VARIANT_BOOL defaultChecked();
    [propput, id(DISPID_IHTMLINPUTELEMENT_CHECKED), bindable] void checked(VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLINPUTELEMENT_CHECKED), bindable] VARIANT_BOOL checked();
    [propput, id(DISPID_IHTMLINPUTELEMENT_BORDER), displaybind, bindable] void border(VARIANT v);
    [propget, id(DISPID_IHTMLINPUTELEMENT_BORDER), displaybind, bindable] VARIANT border();
    [propput, id(DISPID_IHTMLINPUTELEMENT_VSPACE), displaybind, bindable] void vspace(long v);
    [propget, id(DISPID_IHTMLINPUTELEMENT_VSPACE), displaybind, bindable] long vspace();
    [propput, id(DISPID_IHTMLINPUTELEMENT_HSPACE), displaybind, bindable] void hspace(long v);
    [propget, id(DISPID_IHTMLINPUTELEMENT_HSPACE), displaybind, bindable] long hspace();
    [propput, id(DISPID_IHTMLINPUTELEMENT_ALT), displaybind, bindable] void alt(BSTR v);
    [propget, id(DISPID_IHTMLINPUTELEMENT_ALT), displaybind, bindable] BSTR alt();
    [propput, id(DISPID_IHTMLINPUTELEMENT_SRC), displaybind, bindable] void src(BSTR v);
    [propget, id(DISPID_IHTMLINPUTELEMENT_SRC), displaybind, bindable] BSTR src();
    [propput, id(DISPID_IHTMLINPUTELEMENT_LOWSRC), displaybind, bindable] void lowsrc(BSTR v);
    [propget, id(DISPID_IHTMLINPUTELEMENT_LOWSRC), displaybind, bindable] BSTR lowsrc();
    [propput, id(DISPID_IHTMLINPUTELEMENT_VRML), displaybind, bindable] void vrml(BSTR v);
    [propget, id(DISPID_IHTMLINPUTELEMENT_VRML), displaybind, bindable] BSTR vrml();
    [propput, id(DISPID_IHTMLINPUTELEMENT_DYNSRC), displaybind, bindable] void dynsrc(BSTR v);
    [propget, id(DISPID_IHTMLINPUTELEMENT_DYNSRC), displaybind, bindable] BSTR dynsrc();
    [propget, id(DISPID_IHTMLINPUTELEMENT_COMPLETE)] VARIANT_BOOL complete();
    [propput, id(DISPID_IHTMLINPUTELEMENT_LOOP), displaybind, bindable] void loop(VARIANT v);
    [propget, id(DISPID_IHTMLINPUTELEMENT_LOOP), displaybind, bindable] VARIANT loop();
    [propput, id(DISPID_IHTMLINPUTELEMENT_ALIGN), displaybind, bindable] void align(BSTR v);
    [propget, id(DISPID_IHTMLINPUTELEMENT_ALIGN), displaybind, bindable] BSTR align();
    [propput, id(DISPID_IHTMLINPUTELEMENT_ONLOAD), displaybind, bindable] void onload(VARIANT v);
    [propget, id(DISPID_IHTMLINPUTELEMENT_ONLOAD), displaybind, bindable] VARIANT onload();
    [propput, id(DISPID_IHTMLINPUTELEMENT_ONERROR), displaybind, bindable] void onerror(VARIANT v);
    [propget, id(DISPID_IHTMLINPUTELEMENT_ONERROR), displaybind, bindable] VARIANT onerror();
    [propput, id(DISPID_IHTMLINPUTELEMENT_ONABORT), displaybind, bindable] void onabort(VARIANT v);
    [propget, id(DISPID_IHTMLINPUTELEMENT_ONABORT), displaybind, bindable] VARIANT onabort();
    [propput, id(DISPID_IHTMLINPUTELEMENT_WIDTH)] void width(long v);
    [propget, id(DISPID_IHTMLINPUTELEMENT_WIDTH)] long width();
    [propput, id(DISPID_IHTMLINPUTELEMENT_HEIGHT)] void height(long v);
    [propget, id(DISPID_IHTMLINPUTELEMENT_HEIGHT)] long height();
    [propput, id(DISPID_IHTMLINPUTELEMENT_START), displaybind, bindable] void start(BSTR v);
    [propget, id(DISPID_IHTMLINPUTELEMENT_START), displaybind, bindable] BSTR start();
};
[
    uuid(3050f5d8-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLInputElement
{
    [default]           dispinterface DispHTMLInputElement;
    [source, default]   dispinterface HTMLInputTextElementEvents;
    [source]            dispinterface HTMLInputTextElementEvents2;
    [source]            dispinterface HTMLOptionButtonElementEvents;
    [source]            dispinterface HTMLButtonElementEvents;
                        interface IHTMLElement;
                        interface IHTMLElement2;
                        interface IHTMLUniqueName;
                        interface IHTMLDOMNode;
                        interface IHTMLDatabinding;
                        interface IHTMLControlElement;
                        interface IHTMLInputElement;
                        interface IHTMLInputTextElement;
                        interface IHTMLInputHiddenElement;
                        interface IHTMLInputButtonElement;
                        interface IHTMLInputFileElement;
                        interface IHTMLOptionButtonElement;
                        interface IHTMLInputImage;
};
cpp_quote("EXTERN_C const GUID CLSID_CInput;")
[
    odl,
    oleautomation,
    dual,
    uuid(3050f2aa-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLTextAreaElement : IDispatch
{
    [propget, id(DISPID_IHTMLTEXTAREAELEMENT_TYPE)] HRESULT type([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLTEXTAREAELEMENT_VALUE), displaybind, bindable] HRESULT value([in] BSTR v);
    [propget, id(DISPID_IHTMLTEXTAREAELEMENT_VALUE), displaybind, bindable] HRESULT value([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLTEXTAREAELEMENT_NAME), displaybind, bindable] HRESULT name([in] BSTR v);
    [propget, id(DISPID_IHTMLTEXTAREAELEMENT_NAME), displaybind, bindable] HRESULT name([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLTEXTAREAELEMENT_STATUS)] HRESULT status([in] VARIANT v);
    [propget, id(DISPID_IHTMLTEXTAREAELEMENT_STATUS)] HRESULT status([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLTEXTAREAELEMENT_DISABLED), displaybind, bindable] HRESULT disabled([in] VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLTEXTAREAELEMENT_DISABLED), displaybind, bindable] HRESULT disabled([retval, out] VARIANT_BOOL * p);
    [propget, id(DISPID_IHTMLTEXTAREAELEMENT_FORM)] HRESULT form([retval, out] IHTMLFormElement* * p);
    [propput, id(DISPID_IHTMLTEXTAREAELEMENT_DEFAULTVALUE), displaybind, bindable, hidden] HRESULT defaultValue([in] BSTR v);
    [propget, id(DISPID_IHTMLTEXTAREAELEMENT_DEFAULTVALUE), displaybind, bindable, hidden] HRESULT defaultValue([retval, out] BSTR * p);
    [id(DISPID_IHTMLTEXTAREAELEMENT_SELECT)] HRESULT select();
    [propput, id(DISPID_IHTMLTEXTAREAELEMENT_ONCHANGE), displaybind, bindable] HRESULT onchange([in] VARIANT v);
    [propget, id(DISPID_IHTMLTEXTAREAELEMENT_ONCHANGE), displaybind, bindable] HRESULT onchange([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLTEXTAREAELEMENT_ONSELECT), displaybind, bindable] HRESULT onselect([in] VARIANT v);
    [propget, id(DISPID_IHTMLTEXTAREAELEMENT_ONSELECT), displaybind, bindable] HRESULT onselect([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLTEXTAREAELEMENT_READONLY), displaybind, bindable] HRESULT readOnly([in] VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLTEXTAREAELEMENT_READONLY), displaybind, bindable] HRESULT readOnly([retval, out] VARIANT_BOOL * p);
    [propput, id(DISPID_IHTMLTEXTAREAELEMENT_ROWS), displaybind, bindable] HRESULT rows([in] long v);
    [propget, id(DISPID_IHTMLTEXTAREAELEMENT_ROWS), displaybind, bindable] HRESULT rows([retval, out] long * p);
    [propput, id(DISPID_IHTMLTEXTAREAELEMENT_COLS), displaybind, bindable] HRESULT cols([in] long v);
    [propget, id(DISPID_IHTMLTEXTAREAELEMENT_COLS), displaybind, bindable] HRESULT cols([retval, out] long * p);
    [propput, id(DISPID_IHTMLTEXTAREAELEMENT_WRAP), displaybind, bindable] HRESULT wrap([in] BSTR v);
    [propget, id(DISPID_IHTMLTEXTAREAELEMENT_WRAP), displaybind, bindable] HRESULT wrap([retval, out] BSTR * p);
    [id(DISPID_IHTMLTEXTAREAELEMENT_CREATETEXTRANGE)] HRESULT createTextRange([retval, out] IHTMLTxtRange** range);
};
[
    hidden,
    uuid(3050f521-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTMLTextAreaElement
{
properties:
methods:
    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)] void setAttribute([in] BSTR strAttributeName,[in] VARIANT AttributeValue,[defaultvalue(1), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)] VARIANT getAttribute([in] BSTR strAttributeName,[defaultvalue(0), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)] VARIANT_BOOL removeAttribute([in] BSTR strAttributeName,[defaultvalue(1), in] LONG lFlags);
    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] void className(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] BSTR className();
    [propput, id(DISPID_IHTMLELEMENT_ID), bindable] void id(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_ID), bindable] BSTR id();
    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)] BSTR tagName();
    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)] IHTMLElement* parentElement();
    [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable] IHTMLStyle* style();
    [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] void onhelp(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] VARIANT onhelp();
    [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] void onclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] VARIANT onclick();
    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] void ondblclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] VARIANT ondblclick();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] void onkeydown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] VARIANT onkeydown();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] void onkeyup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] VARIANT onkeyup();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] void onkeypress(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] VARIANT onkeypress();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] void onmouseout(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] VARIANT onmouseout();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] void onmouseover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] VARIANT onmouseover();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] void onmousemove(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] VARIANT onmousemove();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] void onmousedown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] VARIANT onmousedown();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] void onmouseup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] VARIANT onmouseup();
    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)] IDispatch* document();
    [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] void title(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] BSTR title();
    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] void language(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] BSTR language();
    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] void onselectstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] VARIANT onselectstart();
    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)] void scrollIntoView([optional, in] VARIANT varargStart);
    [id(DISPID_IHTMLELEMENT_CONTAINS)] VARIANT_BOOL contains([in] IHTMLElement* pChild);
    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable] long sourceIndex();
    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)] VARIANT recordNumber();
    [propput, id(DISPID_IHTMLELEMENT_LANG)] void lang(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANG)] BSTR lang();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)] long offsetLeft();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)] long offsetTop();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)] long offsetWidth();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)] long offsetHeight();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)] IHTMLElement* offsetParent();
    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)] void innerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)] BSTR innerHTML();
    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)] void innerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)] BSTR innerText();
    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)] void outerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)] BSTR outerHTML();
    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)] void outerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)] BSTR outerText();
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)] void insertAdjacentHTML([in] BSTR where,[in] BSTR html);
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)] void insertAdjacentText([in] BSTR where,[in] BSTR text);
    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)] IHTMLElement* parentTextEdit();
    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)] VARIANT_BOOL isTextEdit();
    [id(DISPID_IHTMLELEMENT_CLICK)] void click();
    [propget, id(DISPID_IHTMLELEMENT_FILTERS)] IHTMLFiltersCollection* filters();
    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] void ondragstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] VARIANT ondragstart();
    [id(DISPID_IHTMLELEMENT_TOSTRING)] BSTR toString();
    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] void onbeforeupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] VARIANT onbeforeupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] void onafterupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] VARIANT onafterupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] void onerrorupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] VARIANT onerrorupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] void onrowexit(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] VARIANT onrowexit();
    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] void onrowenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] VARIANT onrowenter();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] void ondatasetchanged(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] VARIANT ondatasetchanged();
    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] void ondataavailable(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] VARIANT ondataavailable();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] void ondatasetcomplete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] VARIANT ondatasetcomplete();
    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] void onfilterchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] VARIANT onfilterchange();
    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)] IDispatch* children();
    [propget, id(DISPID_IHTMLELEMENT_ALL)] IDispatch* all();
    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)] BSTR scopeName();
    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)] void setCapture([defaultvalue(-1), in] VARIANT_BOOL containerCapture);
    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)] void releaseCapture();
    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] void onlosecapture(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] VARIANT onlosecapture();
    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)] BSTR componentFromPoint([in] long x,[in] long y);
    [id(DISPID_IHTMLELEMENT2_DOSCROLL)] void doScroll([optional, in] VARIANT component);
    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] void onscroll(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] VARIANT onscroll();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] void ondrag(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] VARIANT ondrag();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] void ondragend(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] VARIANT ondragend();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] void ondragenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] VARIANT ondragenter();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] void ondragover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] VARIANT ondragover();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] void ondragleave(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] VARIANT ondragleave();
    [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] void ondrop(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] VARIANT ondrop();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] void onbeforecut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] VARIANT onbeforecut();
    [propput, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] void oncut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] VARIANT oncut();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] void onbeforecopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] VARIANT onbeforecopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] void oncopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] VARIANT oncopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] void onbeforepaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] VARIANT onbeforepaste();
    [propput, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] void onpaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] VARIANT onpaste();
    [propget, id(DISPID_IHTMLELEMENT2_CURRENTSTYLE), nonbrowsable] IHTMLCurrentStyle* currentStyle();
    [propput, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] void onpropertychange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] VARIANT onpropertychange();
    [id(DISPID_IHTMLELEMENT2_GETCLIENTRECTS)] IHTMLRectCollection* getClientRects();
    [id(DISPID_IHTMLELEMENT2_GETBOUNDINGCLIENTRECT)] IHTMLRect* getBoundingClientRect();
    [id(DISPID_IHTMLELEMENT2_SETEXPRESSION)] void setExpression([in] BSTR propname,[in] BSTR expression,[defaultvalue(""), in] BSTR language);
    [id(DISPID_IHTMLELEMENT2_GETEXPRESSION)] VARIANT getExpression([in] BSTR propname);
    [id(DISPID_IHTMLELEMENT2_REMOVEEXPRESSION)] VARIANT_BOOL removeExpression([in] BSTR propname);
    [propput, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] void tabIndex(short v);
    [propget, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] short tabIndex();
    [id(DISPID_IHTMLELEMENT2_FOCUS)] void focus();
    [propput, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] void accessKey(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] BSTR accessKey();
    [propput, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] void onblur(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] VARIANT onblur();
    [propput, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] void onfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] VARIANT onfocus();
    [propput, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] void onresize(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] VARIANT onresize();
    [id(DISPID_IHTMLELEMENT2_BLUR)] void blur();
    [id(DISPID_IHTMLELEMENT2_ADDFILTER)] void addFilter([in] IUnknown* pUnk);
    [id(DISPID_IHTMLELEMENT2_REMOVEFILTER)] void removeFilter([in] IUnknown* pUnk);
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTHEIGHT), displaybind, bindable] long clientHeight();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTWIDTH), displaybind, bindable] long clientWidth();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTTOP), displaybind, bindable] long clientTop();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTLEFT), displaybind, bindable] long clientLeft();
    [id(DISPID_IHTMLELEMENT2_ATTACHEVENT)] VARIANT_BOOL attachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [id(DISPID_IHTMLELEMENT2_DETACHEVENT)] void detachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATE)] VARIANT readyState();
    [propput, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] void onreadystatechange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] VARIANT onreadystatechange();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] void onrowsdelete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] VARIANT onrowsdelete();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] void onrowsinserted(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] VARIANT onrowsinserted();
    [propput, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] void oncellchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] VARIANT oncellchange();
    [propput, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] void dir(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] BSTR dir();
    [id(DISPID_IHTMLELEMENT2_CREATECONTROLRANGE)] IDispatch* createControlRange();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLHEIGHT), displaybind, bindable] long scrollHeight();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLWIDTH), displaybind, bindable] long scrollWidth();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] void scrollTop(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] long scrollTop();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] void scrollLeft(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] long scrollLeft();
    [id(DISPID_IHTMLELEMENT2_CLEARATTRIBUTES)] void clearAttributes();
    [id(DISPID_IHTMLELEMENT2_MERGEATTRIBUTES)] void mergeAttributes([in] IHTMLElement* mergeThis);
    [propput, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] void oncontextmenu(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] VARIANT oncontextmenu();
    [id(DISPID_IHTMLELEMENT2_INSERTADJACENTELEMENT)] IHTMLElement* insertAdjacentElement([in] BSTR where,[in] IHTMLElement* insertedElement);
    [id(DISPID_IHTMLELEMENT2_APPLYELEMENT)] IHTMLElement* applyElement([in] IHTMLElement* apply,[in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_GETADJACENTTEXT)] BSTR getAdjacentText([in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_REPLACEADJACENTTEXT)] BSTR replaceAdjacentText([in] BSTR where,[in] BSTR newText);
    [propget, id(DISPID_IHTMLELEMENT2_CANHAVECHILDREN)] VARIANT_BOOL canHaveChildren();
    [id(DISPID_IHTMLELEMENT2_ADDBEHAVIOR)] long addBehavior([in] BSTR bstrUrl,[optional, in] VARIANT* pvarFactory);
    [id(DISPID_IHTMLELEMENT2_REMOVEBEHAVIOR)] VARIANT_BOOL removeBehavior([in] long cookie);
    [propget, id(DISPID_IHTMLELEMENT2_RUNTIMESTYLE), nonbrowsable] IHTMLStyle* runtimeStyle();
    [propget, id(DISPID_IHTMLELEMENT2_BEHAVIORURNS)] IDispatch* behaviorUrns();
    [propput, id(DISPID_IHTMLELEMENT2_TAGURN)] void tagUrn(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_TAGURN)] BSTR tagUrn();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] void onbeforeeditfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] VARIANT onbeforeeditfocus();
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATEVALUE), hidden, restricted] long readyStateValue();
    [id(DISPID_IHTMLELEMENT2_GETELEMENTSBYTAGNAME)] IHTMLElementCollection* getElementsByTagName([in] BSTR v);
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUENUMBER), hidden] long uniqueNumber();
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUEID), hidden] BSTR uniqueID();
    [propget, id(DISPID_IHTMLDOMNODE_NODETYPE)] long nodeType();
    [propget, id(DISPID_IHTMLDOMNODE_PARENTNODE)] IHTMLDOMNode* parentNode();
    [id(DISPID_IHTMLDOMNODE_HASCHILDNODES)] VARIANT_BOOL hasChildNodes();
    [propget, id(DISPID_IHTMLDOMNODE_CHILDNODES)] IDispatch* childNodes();
    [propget, id(DISPID_IHTMLDOMNODE_ATTRIBUTES)] IDispatch* attributes();
    [id(DISPID_IHTMLDOMNODE_INSERTBEFORE)] IHTMLDOMNode* insertBefore([in] IHTMLDOMNode* newChild,[optional, in] VARIANT refChild);
    [id(DISPID_IHTMLDOMNODE_REMOVECHILD)] IHTMLDOMNode* removeChild([in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_REPLACECHILD)] IHTMLDOMNode* replaceChild([in] IHTMLDOMNode* newChild,[in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_CLONENODE)] IHTMLDOMNode* cloneNode([in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_REMOVENODE)] IHTMLDOMNode* removeNode([defaultvalue(0), in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_SWAPNODE)] IHTMLDOMNode* swapNode([in] IHTMLDOMNode* otherNode);
    [id(DISPID_IHTMLDOMNODE_REPLACENODE)] IHTMLDOMNode* replaceNode([in] IHTMLDOMNode* replacement);
    [id(DISPID_IHTMLDOMNODE_APPENDCHILD)] IHTMLDOMNode* appendChild([in] IHTMLDOMNode* newChild);
    [propget, id(DISPID_IHTMLDOMNODE_NODENAME)] BSTR nodeName();
    [propput, id(DISPID_IHTMLDOMNODE_NODEVALUE)] void nodeValue(VARIANT v);
    [propget, id(DISPID_IHTMLDOMNODE_NODEVALUE)] VARIANT nodeValue();
    [propget, id(DISPID_IHTMLDOMNODE_FIRSTCHILD)] IHTMLDOMNode* firstChild();
    [propget, id(DISPID_IHTMLDOMNODE_LASTCHILD)] IHTMLDOMNode* lastChild();
    [propget, id(DISPID_IHTMLDOMNODE_PREVIOUSSIBLING)] IHTMLDOMNode* previousSibling();
    [propget, id(DISPID_IHTMLDOMNODE_NEXTSIBLING)] IHTMLDOMNode* nextSibling();
    [propput, id(DISPID_IHTMLDATABINDING_DATAFLD)] void dataFld(BSTR v);
    [propget, id(DISPID_IHTMLDATABINDING_DATAFLD)] BSTR dataFld();
    [propput, id(DISPID_IHTMLDATABINDING_DATASRC)] void dataSrc(BSTR v);
    [propget, id(DISPID_IHTMLDATABINDING_DATASRC)] BSTR dataSrc();
    [propput, id(DISPID_IHTMLDATABINDING_DATAFORMATAS)] void dataFormatAs(BSTR v);
    [propget, id(DISPID_IHTMLDATABINDING_DATAFORMATAS)] BSTR dataFormatAs();
    [propget, id(DISPID_IHTMLTEXTAREAELEMENT_TYPE)] BSTR type();
    [propput, id(DISPID_IHTMLTEXTAREAELEMENT_VALUE), displaybind, bindable] void value(BSTR v);
    [propget, id(DISPID_IHTMLTEXTAREAELEMENT_VALUE), displaybind, bindable] BSTR value();
    [propput, id(DISPID_IHTMLTEXTAREAELEMENT_NAME), displaybind, bindable] void name(BSTR v);
    [propget, id(DISPID_IHTMLTEXTAREAELEMENT_NAME), displaybind, bindable] BSTR name();
    [propput, id(DISPID_IHTMLTEXTAREAELEMENT_STATUS)] void status(VARIANT v);
    [propget, id(DISPID_IHTMLTEXTAREAELEMENT_STATUS)] VARIANT status();
    [propput, id(DISPID_IHTMLTEXTAREAELEMENT_DISABLED), displaybind, bindable] void disabled(VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLTEXTAREAELEMENT_DISABLED), displaybind, bindable] VARIANT_BOOL disabled();
    [propget, id(DISPID_IHTMLTEXTAREAELEMENT_FORM)] IHTMLFormElement* form();
    [propput, id(DISPID_IHTMLTEXTAREAELEMENT_DEFAULTVALUE), displaybind, bindable, hidden] void defaultValue(BSTR v);
    [propget, id(DISPID_IHTMLTEXTAREAELEMENT_DEFAULTVALUE), displaybind, bindable, hidden] BSTR defaultValue();
    [id(DISPID_IHTMLTEXTAREAELEMENT_SELECT)] void select();
    [propput, id(DISPID_IHTMLTEXTAREAELEMENT_ONCHANGE), displaybind, bindable] void onchange(VARIANT v);
    [propget, id(DISPID_IHTMLTEXTAREAELEMENT_ONCHANGE), displaybind, bindable] VARIANT onchange();
    [propput, id(DISPID_IHTMLTEXTAREAELEMENT_ONSELECT), displaybind, bindable] void onselect(VARIANT v);
    [propget, id(DISPID_IHTMLTEXTAREAELEMENT_ONSELECT), displaybind, bindable] VARIANT onselect();
    [propput, id(DISPID_IHTMLTEXTAREAELEMENT_READONLY), displaybind, bindable] void readOnly(VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLTEXTAREAELEMENT_READONLY), displaybind, bindable] VARIANT_BOOL readOnly();
    [propput, id(DISPID_IHTMLTEXTAREAELEMENT_ROWS), displaybind, bindable] void rows(long v);
    [propget, id(DISPID_IHTMLTEXTAREAELEMENT_ROWS), displaybind, bindable] long rows();
    [propput, id(DISPID_IHTMLTEXTAREAELEMENT_COLS), displaybind, bindable] void cols(long v);
    [propget, id(DISPID_IHTMLTEXTAREAELEMENT_COLS), displaybind, bindable] long cols();
    [propput, id(DISPID_IHTMLTEXTAREAELEMENT_WRAP), displaybind, bindable] void wrap(BSTR v);
    [propget, id(DISPID_IHTMLTEXTAREAELEMENT_WRAP), displaybind, bindable] BSTR wrap();
    [id(DISPID_IHTMLTEXTAREAELEMENT_CREATETEXTRANGE)] IHTMLTxtRange* createTextRange();
};
[
    uuid(3050f2ac-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLTextAreaElement
{
    [default]           dispinterface DispHTMLTextAreaElement;
    [source, default]   dispinterface HTMLInputTextElementEvents;
    [source]            dispinterface HTMLInputTextElementEvents2;
    [source]            dispinterface HTMLTextContainerEvents;
    [source]            dispinterface HTMLTextContainerEvents2;
                        interface IHTMLElement;
                        interface IHTMLElement2;
                        interface IHTMLUniqueName;
                        interface IHTMLDOMNode;
                        interface IHTMLDatabinding;
                        interface IHTMLControlElement;
                        interface IHTMLTextContainer;
                        interface IHTMLTextAreaElement;
};
cpp_quote("EXTERN_C const GUID CLSID_CTextArea;")
[
    hidden,
    uuid(3050f54d-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTMLRichtextElement
{
properties:
methods:
    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)] void setAttribute([in] BSTR strAttributeName,[in] VARIANT AttributeValue,[defaultvalue(1), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)] VARIANT getAttribute([in] BSTR strAttributeName,[defaultvalue(0), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)] VARIANT_BOOL removeAttribute([in] BSTR strAttributeName,[defaultvalue(1), in] LONG lFlags);
    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] void className(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] BSTR className();
    [propput, id(DISPID_IHTMLELEMENT_ID), bindable] void id(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_ID), bindable] BSTR id();
    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)] BSTR tagName();
    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)] IHTMLElement* parentElement();
    [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable] IHTMLStyle* style();
    [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] void onhelp(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] VARIANT onhelp();
    [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] void onclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] VARIANT onclick();
    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] void ondblclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] VARIANT ondblclick();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] void onkeydown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] VARIANT onkeydown();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] void onkeyup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] VARIANT onkeyup();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] void onkeypress(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] VARIANT onkeypress();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] void onmouseout(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] VARIANT onmouseout();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] void onmouseover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] VARIANT onmouseover();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] void onmousemove(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] VARIANT onmousemove();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] void onmousedown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] VARIANT onmousedown();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] void onmouseup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] VARIANT onmouseup();
    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)] IDispatch* document();
    [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] void title(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] BSTR title();
    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] void language(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] BSTR language();
    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] void onselectstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] VARIANT onselectstart();
    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)] void scrollIntoView([optional, in] VARIANT varargStart);
    [id(DISPID_IHTMLELEMENT_CONTAINS)] VARIANT_BOOL contains([in] IHTMLElement* pChild);
    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable] long sourceIndex();
    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)] VARIANT recordNumber();
    [propput, id(DISPID_IHTMLELEMENT_LANG)] void lang(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANG)] BSTR lang();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)] long offsetLeft();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)] long offsetTop();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)] long offsetWidth();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)] long offsetHeight();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)] IHTMLElement* offsetParent();
    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)] void innerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)] BSTR innerHTML();
    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)] void innerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)] BSTR innerText();
    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)] void outerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)] BSTR outerHTML();
    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)] void outerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)] BSTR outerText();
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)] void insertAdjacentHTML([in] BSTR where,[in] BSTR html);
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)] void insertAdjacentText([in] BSTR where,[in] BSTR text);
    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)] IHTMLElement* parentTextEdit();
    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)] VARIANT_BOOL isTextEdit();
    [id(DISPID_IHTMLELEMENT_CLICK)] void click();
    [propget, id(DISPID_IHTMLELEMENT_FILTERS)] IHTMLFiltersCollection* filters();
    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] void ondragstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] VARIANT ondragstart();
    [id(DISPID_IHTMLELEMENT_TOSTRING)] BSTR toString();
    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] void onbeforeupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] VARIANT onbeforeupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] void onafterupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] VARIANT onafterupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] void onerrorupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] VARIANT onerrorupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] void onrowexit(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] VARIANT onrowexit();
    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] void onrowenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] VARIANT onrowenter();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] void ondatasetchanged(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] VARIANT ondatasetchanged();
    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] void ondataavailable(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] VARIANT ondataavailable();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] void ondatasetcomplete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] VARIANT ondatasetcomplete();
    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] void onfilterchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] VARIANT onfilterchange();
    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)] IDispatch* children();
    [propget, id(DISPID_IHTMLELEMENT_ALL)] IDispatch* all();
    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)] BSTR scopeName();
    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)] void setCapture([defaultvalue(-1), in] VARIANT_BOOL containerCapture);
    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)] void releaseCapture();
    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] void onlosecapture(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] VARIANT onlosecapture();
    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)] BSTR componentFromPoint([in] long x,[in] long y);
    [id(DISPID_IHTMLELEMENT2_DOSCROLL)] void doScroll([optional, in] VARIANT component);
    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] void onscroll(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] VARIANT onscroll();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] void ondrag(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] VARIANT ondrag();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] void ondragend(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] VARIANT ondragend();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] void ondragenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] VARIANT ondragenter();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] void ondragover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] VARIANT ondragover();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] void ondragleave(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] VARIANT ondragleave();
    [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] void ondrop(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] VARIANT ondrop();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] void onbeforecut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] VARIANT onbeforecut();
    [propput, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] void oncut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] VARIANT oncut();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] void onbeforecopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] VARIANT onbeforecopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] void oncopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] VARIANT oncopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] void onbeforepaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] VARIANT onbeforepaste();
    [propput, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] void onpaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] VARIANT onpaste();
    [propget, id(DISPID_IHTMLELEMENT2_CURRENTSTYLE), nonbrowsable] IHTMLCurrentStyle* currentStyle();
    [propput, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] void onpropertychange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] VARIANT onpropertychange();
    [id(DISPID_IHTMLELEMENT2_GETCLIENTRECTS)] IHTMLRectCollection* getClientRects();
    [id(DISPID_IHTMLELEMENT2_GETBOUNDINGCLIENTRECT)] IHTMLRect* getBoundingClientRect();
    [id(DISPID_IHTMLELEMENT2_SETEXPRESSION)] void setExpression([in] BSTR propname,[in] BSTR expression,[defaultvalue(""), in] BSTR language);
    [id(DISPID_IHTMLELEMENT2_GETEXPRESSION)] VARIANT getExpression([in] BSTR propname);
    [id(DISPID_IHTMLELEMENT2_REMOVEEXPRESSION)] VARIANT_BOOL removeExpression([in] BSTR propname);
    [propput, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] void tabIndex(short v);
    [propget, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] short tabIndex();
    [id(DISPID_IHTMLELEMENT2_FOCUS)] void focus();
    [propput, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] void accessKey(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] BSTR accessKey();
    [propput, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] void onblur(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] VARIANT onblur();
    [propput, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] void onfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] VARIANT onfocus();
    [propput, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] void onresize(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] VARIANT onresize();
    [id(DISPID_IHTMLELEMENT2_BLUR)] void blur();
    [id(DISPID_IHTMLELEMENT2_ADDFILTER)] void addFilter([in] IUnknown* pUnk);
    [id(DISPID_IHTMLELEMENT2_REMOVEFILTER)] void removeFilter([in] IUnknown* pUnk);
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTHEIGHT), displaybind, bindable] long clientHeight();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTWIDTH), displaybind, bindable] long clientWidth();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTTOP), displaybind, bindable] long clientTop();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTLEFT), displaybind, bindable] long clientLeft();
    [id(DISPID_IHTMLELEMENT2_ATTACHEVENT)] VARIANT_BOOL attachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [id(DISPID_IHTMLELEMENT2_DETACHEVENT)] void detachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATE)] VARIANT readyState();
    [propput, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] void onreadystatechange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] VARIANT onreadystatechange();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] void onrowsdelete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] VARIANT onrowsdelete();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] void onrowsinserted(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] VARIANT onrowsinserted();
    [propput, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] void oncellchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] VARIANT oncellchange();
    [propput, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] void dir(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] BSTR dir();
    [id(DISPID_IHTMLELEMENT2_CREATECONTROLRANGE)] IDispatch* createControlRange();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLHEIGHT), displaybind, bindable] long scrollHeight();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLWIDTH), displaybind, bindable] long scrollWidth();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] void scrollTop(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] long scrollTop();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] void scrollLeft(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] long scrollLeft();
    [id(DISPID_IHTMLELEMENT2_CLEARATTRIBUTES)] void clearAttributes();
    [id(DISPID_IHTMLELEMENT2_MERGEATTRIBUTES)] void mergeAttributes([in] IHTMLElement* mergeThis);
    [propput, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] void oncontextmenu(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] VARIANT oncontextmenu();
    [id(DISPID_IHTMLELEMENT2_INSERTADJACENTELEMENT)] IHTMLElement* insertAdjacentElement([in] BSTR where,[in] IHTMLElement* insertedElement);
    [id(DISPID_IHTMLELEMENT2_APPLYELEMENT)] IHTMLElement* applyElement([in] IHTMLElement* apply,[in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_GETADJACENTTEXT)] BSTR getAdjacentText([in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_REPLACEADJACENTTEXT)] BSTR replaceAdjacentText([in] BSTR where,[in] BSTR newText);
    [propget, id(DISPID_IHTMLELEMENT2_CANHAVECHILDREN)] VARIANT_BOOL canHaveChildren();
    [id(DISPID_IHTMLELEMENT2_ADDBEHAVIOR)] long addBehavior([in] BSTR bstrUrl,[optional, in] VARIANT* pvarFactory);
    [id(DISPID_IHTMLELEMENT2_REMOVEBEHAVIOR)] VARIANT_BOOL removeBehavior([in] long cookie);
    [propget, id(DISPID_IHTMLELEMENT2_RUNTIMESTYLE), nonbrowsable] IHTMLStyle* runtimeStyle();
    [propget, id(DISPID_IHTMLELEMENT2_BEHAVIORURNS)] IDispatch* behaviorUrns();
    [propput, id(DISPID_IHTMLELEMENT2_TAGURN)] void tagUrn(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_TAGURN)] BSTR tagUrn();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] void onbeforeeditfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] VARIANT onbeforeeditfocus();
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATEVALUE), hidden, restricted] long readyStateValue();
    [id(DISPID_IHTMLELEMENT2_GETELEMENTSBYTAGNAME)] IHTMLElementCollection* getElementsByTagName([in] BSTR v);
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUENUMBER), hidden] long uniqueNumber();
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUEID), hidden] BSTR uniqueID();
    [propget, id(DISPID_IHTMLDOMNODE_NODETYPE)] long nodeType();
    [propget, id(DISPID_IHTMLDOMNODE_PARENTNODE)] IHTMLDOMNode* parentNode();
    [id(DISPID_IHTMLDOMNODE_HASCHILDNODES)] VARIANT_BOOL hasChildNodes();
    [propget, id(DISPID_IHTMLDOMNODE_CHILDNODES)] IDispatch* childNodes();
    [propget, id(DISPID_IHTMLDOMNODE_ATTRIBUTES)] IDispatch* attributes();
    [id(DISPID_IHTMLDOMNODE_INSERTBEFORE)] IHTMLDOMNode* insertBefore([in] IHTMLDOMNode* newChild,[optional, in] VARIANT refChild);
    [id(DISPID_IHTMLDOMNODE_REMOVECHILD)] IHTMLDOMNode* removeChild([in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_REPLACECHILD)] IHTMLDOMNode* replaceChild([in] IHTMLDOMNode* newChild,[in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_CLONENODE)] IHTMLDOMNode* cloneNode([in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_REMOVENODE)] IHTMLDOMNode* removeNode([defaultvalue(0), in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_SWAPNODE)] IHTMLDOMNode* swapNode([in] IHTMLDOMNode* otherNode);
    [id(DISPID_IHTMLDOMNODE_REPLACENODE)] IHTMLDOMNode* replaceNode([in] IHTMLDOMNode* replacement);
    [id(DISPID_IHTMLDOMNODE_APPENDCHILD)] IHTMLDOMNode* appendChild([in] IHTMLDOMNode* newChild);
    [propget, id(DISPID_IHTMLDOMNODE_NODENAME)] BSTR nodeName();
    [propput, id(DISPID_IHTMLDOMNODE_NODEVALUE)] void nodeValue(VARIANT v);
    [propget, id(DISPID_IHTMLDOMNODE_NODEVALUE)] VARIANT nodeValue();
    [propget, id(DISPID_IHTMLDOMNODE_FIRSTCHILD)] IHTMLDOMNode* firstChild();
    [propget, id(DISPID_IHTMLDOMNODE_LASTCHILD)] IHTMLDOMNode* lastChild();
    [propget, id(DISPID_IHTMLDOMNODE_PREVIOUSSIBLING)] IHTMLDOMNode* previousSibling();
    [propget, id(DISPID_IHTMLDOMNODE_NEXTSIBLING)] IHTMLDOMNode* nextSibling();
    [propput, id(DISPID_IHTMLDATABINDING_DATAFLD)] void dataFld(BSTR v);
    [propget, id(DISPID_IHTMLDATABINDING_DATAFLD)] BSTR dataFld();
    [propput, id(DISPID_IHTMLDATABINDING_DATASRC)] void dataSrc(BSTR v);
    [propget, id(DISPID_IHTMLDATABINDING_DATASRC)] BSTR dataSrc();
    [propput, id(DISPID_IHTMLDATABINDING_DATAFORMATAS)] void dataFormatAs(BSTR v);
    [propget, id(DISPID_IHTMLDATABINDING_DATAFORMATAS)] BSTR dataFormatAs();
    [propget, id(DISPID_IHTMLTEXTAREAELEMENT_TYPE)] BSTR type();
    [propput, id(DISPID_IHTMLTEXTAREAELEMENT_VALUE), displaybind, bindable] void value(BSTR v);
    [propget, id(DISPID_IHTMLTEXTAREAELEMENT_VALUE), displaybind, bindable] BSTR value();
    [propput, id(DISPID_IHTMLTEXTAREAELEMENT_NAME), displaybind, bindable] void name(BSTR v);
    [propget, id(DISPID_IHTMLTEXTAREAELEMENT_NAME), displaybind, bindable] BSTR name();
    [propput, id(DISPID_IHTMLTEXTAREAELEMENT_STATUS)] void status(VARIANT v);
    [propget, id(DISPID_IHTMLTEXTAREAELEMENT_STATUS)] VARIANT status();
    [propput, id(DISPID_IHTMLTEXTAREAELEMENT_DISABLED), displaybind, bindable] void disabled(VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLTEXTAREAELEMENT_DISABLED), displaybind, bindable] VARIANT_BOOL disabled();
    [propget, id(DISPID_IHTMLTEXTAREAELEMENT_FORM)] IHTMLFormElement* form();
    [propput, id(DISPID_IHTMLTEXTAREAELEMENT_DEFAULTVALUE), displaybind, bindable, hidden] void defaultValue(BSTR v);
    [propget, id(DISPID_IHTMLTEXTAREAELEMENT_DEFAULTVALUE), displaybind, bindable, hidden] BSTR defaultValue();
    [id(DISPID_IHTMLTEXTAREAELEMENT_SELECT)] void select();
    [propput, id(DISPID_IHTMLTEXTAREAELEMENT_ONCHANGE), displaybind, bindable] void onchange(VARIANT v);
    [propget, id(DISPID_IHTMLTEXTAREAELEMENT_ONCHANGE), displaybind, bindable] VARIANT onchange();
    [propput, id(DISPID_IHTMLTEXTAREAELEMENT_ONSELECT), displaybind, bindable] void onselect(VARIANT v);
    [propget, id(DISPID_IHTMLTEXTAREAELEMENT_ONSELECT), displaybind, bindable] VARIANT onselect();
    [propput, id(DISPID_IHTMLTEXTAREAELEMENT_READONLY), displaybind, bindable] void readOnly(VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLTEXTAREAELEMENT_READONLY), displaybind, bindable] VARIANT_BOOL readOnly();
    [propput, id(DISPID_IHTMLTEXTAREAELEMENT_ROWS), displaybind, bindable] void rows(long v);
    [propget, id(DISPID_IHTMLTEXTAREAELEMENT_ROWS), displaybind, bindable] long rows();
    [propput, id(DISPID_IHTMLTEXTAREAELEMENT_COLS), displaybind, bindable] void cols(long v);
    [propget, id(DISPID_IHTMLTEXTAREAELEMENT_COLS), displaybind, bindable] long cols();
    [propput, id(DISPID_IHTMLTEXTAREAELEMENT_WRAP), displaybind, bindable] void wrap(BSTR v);
    [propget, id(DISPID_IHTMLTEXTAREAELEMENT_WRAP), displaybind, bindable] BSTR wrap();
    [id(DISPID_IHTMLTEXTAREAELEMENT_CREATETEXTRANGE)] IHTMLTxtRange* createTextRange();
};
[
    uuid(3050f2df-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLRichtextElement
{
    [default]           dispinterface DispHTMLRichtextElement;
    [source, default]   dispinterface HTMLInputTextElementEvents;
    [source]            dispinterface HTMLInputTextElementEvents2;
                        interface IHTMLElement;
                        interface IHTMLElement2;
                        interface IHTMLUniqueName;
                        interface IHTMLDOMNode;
                        interface IHTMLDatabinding;
                        interface IHTMLControlElement;
                        interface IHTMLTextContainer;
                        interface IHTMLTextAreaElement;
};
cpp_quote("EXTERN_C const GUID CLSID_CRichtext;")
[
    odl,
    oleautomation,
    dual,
    uuid(3050f2bb-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLButtonElement : IDispatch
{
    [propget, id(DISPID_IHTMLBUTTONELEMENT_TYPE)] HRESULT type([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLBUTTONELEMENT_VALUE), displaybind, bindable] HRESULT value([in] BSTR v);
    [propget, id(DISPID_IHTMLBUTTONELEMENT_VALUE), displaybind, bindable] HRESULT value([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLBUTTONELEMENT_NAME), displaybind, bindable] HRESULT name([in] BSTR v);
    [propget, id(DISPID_IHTMLBUTTONELEMENT_NAME), displaybind, bindable] HRESULT name([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLBUTTONELEMENT_STATUS)] HRESULT status([in] VARIANT v);
    [propget, id(DISPID_IHTMLBUTTONELEMENT_STATUS)] HRESULT status([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLBUTTONELEMENT_DISABLED), displaybind, bindable] HRESULT disabled([in] VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLBUTTONELEMENT_DISABLED), displaybind, bindable] HRESULT disabled([retval, out] VARIANT_BOOL * p);
    [propget, id(DISPID_IHTMLBUTTONELEMENT_FORM)] HRESULT form([retval, out] IHTMLFormElement* * p);
    [id(DISPID_IHTMLBUTTONELEMENT_CREATETEXTRANGE)] HRESULT createTextRange([retval, out] IHTMLTxtRange** range);
};
[
    hidden,
    uuid(3050f51f-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTMLButtonElement
{
properties:
methods:
    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)] void setAttribute([in] BSTR strAttributeName,[in] VARIANT AttributeValue,[defaultvalue(1), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)] VARIANT getAttribute([in] BSTR strAttributeName,[defaultvalue(0), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)] VARIANT_BOOL removeAttribute([in] BSTR strAttributeName,[defaultvalue(1), in] LONG lFlags);
    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] void className(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] BSTR className();
    [propput, id(DISPID_IHTMLELEMENT_ID), bindable] void id(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_ID), bindable] BSTR id();
    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)] BSTR tagName();
    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)] IHTMLElement* parentElement();
    [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable] IHTMLStyle* style();
    [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] void onhelp(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] VARIANT onhelp();
    [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] void onclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] VARIANT onclick();
    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] void ondblclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] VARIANT ondblclick();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] void onkeydown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] VARIANT onkeydown();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] void onkeyup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] VARIANT onkeyup();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] void onkeypress(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] VARIANT onkeypress();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] void onmouseout(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] VARIANT onmouseout();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] void onmouseover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] VARIANT onmouseover();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] void onmousemove(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] VARIANT onmousemove();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] void onmousedown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] VARIANT onmousedown();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] void onmouseup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] VARIANT onmouseup();
    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)] IDispatch* document();
    [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] void title(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] BSTR title();
    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] void language(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] BSTR language();
    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] void onselectstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] VARIANT onselectstart();
    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)] void scrollIntoView([optional, in] VARIANT varargStart);
    [id(DISPID_IHTMLELEMENT_CONTAINS)] VARIANT_BOOL contains([in] IHTMLElement* pChild);
    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable] long sourceIndex();
    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)] VARIANT recordNumber();
    [propput, id(DISPID_IHTMLELEMENT_LANG)] void lang(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANG)] BSTR lang();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)] long offsetLeft();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)] long offsetTop();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)] long offsetWidth();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)] long offsetHeight();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)] IHTMLElement* offsetParent();
    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)] void innerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)] BSTR innerHTML();
    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)] void innerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)] BSTR innerText();
    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)] void outerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)] BSTR outerHTML();
    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)] void outerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)] BSTR outerText();
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)] void insertAdjacentHTML([in] BSTR where,[in] BSTR html);
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)] void insertAdjacentText([in] BSTR where,[in] BSTR text);
    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)] IHTMLElement* parentTextEdit();
    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)] VARIANT_BOOL isTextEdit();
    [id(DISPID_IHTMLELEMENT_CLICK)] void click();
    [propget, id(DISPID_IHTMLELEMENT_FILTERS)] IHTMLFiltersCollection* filters();
    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] void ondragstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] VARIANT ondragstart();
    [id(DISPID_IHTMLELEMENT_TOSTRING)] BSTR toString();
    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] void onbeforeupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] VARIANT onbeforeupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] void onafterupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] VARIANT onafterupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] void onerrorupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] VARIANT onerrorupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] void onrowexit(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] VARIANT onrowexit();
    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] void onrowenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] VARIANT onrowenter();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] void ondatasetchanged(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] VARIANT ondatasetchanged();
    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] void ondataavailable(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] VARIANT ondataavailable();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] void ondatasetcomplete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] VARIANT ondatasetcomplete();
    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] void onfilterchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] VARIANT onfilterchange();
    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)] IDispatch* children();
    [propget, id(DISPID_IHTMLELEMENT_ALL)] IDispatch* all();
    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)] BSTR scopeName();
    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)] void setCapture([defaultvalue(-1), in] VARIANT_BOOL containerCapture);
    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)] void releaseCapture();
    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] void onlosecapture(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] VARIANT onlosecapture();
    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)] BSTR componentFromPoint([in] long x,[in] long y);
    [id(DISPID_IHTMLELEMENT2_DOSCROLL)] void doScroll([optional, in] VARIANT component);
    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] void onscroll(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] VARIANT onscroll();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] void ondrag(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] VARIANT ondrag();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] void ondragend(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] VARIANT ondragend();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] void ondragenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] VARIANT ondragenter();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] void ondragover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] VARIANT ondragover();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] void ondragleave(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] VARIANT ondragleave();
    [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] void ondrop(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] VARIANT ondrop();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] void onbeforecut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] VARIANT onbeforecut();
    [propput, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] void oncut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] VARIANT oncut();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] void onbeforecopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] VARIANT onbeforecopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] void oncopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] VARIANT oncopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] void onbeforepaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] VARIANT onbeforepaste();
    [propput, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] void onpaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] VARIANT onpaste();
    [propget, id(DISPID_IHTMLELEMENT2_CURRENTSTYLE), nonbrowsable] IHTMLCurrentStyle* currentStyle();
    [propput, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] void onpropertychange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] VARIANT onpropertychange();
    [id(DISPID_IHTMLELEMENT2_GETCLIENTRECTS)] IHTMLRectCollection* getClientRects();
    [id(DISPID_IHTMLELEMENT2_GETBOUNDINGCLIENTRECT)] IHTMLRect* getBoundingClientRect();
    [id(DISPID_IHTMLELEMENT2_SETEXPRESSION)] void setExpression([in] BSTR propname,[in] BSTR expression,[defaultvalue(""), in] BSTR language);
    [id(DISPID_IHTMLELEMENT2_GETEXPRESSION)] VARIANT getExpression([in] BSTR propname);
    [id(DISPID_IHTMLELEMENT2_REMOVEEXPRESSION)] VARIANT_BOOL removeExpression([in] BSTR propname);
    [propput, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] void tabIndex(short v);
    [propget, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] short tabIndex();
    [id(DISPID_IHTMLELEMENT2_FOCUS)] void focus();
    [propput, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] void accessKey(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] BSTR accessKey();
    [propput, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] void onblur(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] VARIANT onblur();
    [propput, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] void onfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] VARIANT onfocus();
    [propput, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] void onresize(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] VARIANT onresize();
    [id(DISPID_IHTMLELEMENT2_BLUR)] void blur();
    [id(DISPID_IHTMLELEMENT2_ADDFILTER)] void addFilter([in] IUnknown* pUnk);
    [id(DISPID_IHTMLELEMENT2_REMOVEFILTER)] void removeFilter([in] IUnknown* pUnk);
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTHEIGHT), displaybind, bindable] long clientHeight();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTWIDTH), displaybind, bindable] long clientWidth();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTTOP), displaybind, bindable] long clientTop();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTLEFT), displaybind, bindable] long clientLeft();
    [id(DISPID_IHTMLELEMENT2_ATTACHEVENT)] VARIANT_BOOL attachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [id(DISPID_IHTMLELEMENT2_DETACHEVENT)] void detachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATE)] VARIANT readyState();
    [propput, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] void onreadystatechange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] VARIANT onreadystatechange();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] void onrowsdelete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] VARIANT onrowsdelete();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] void onrowsinserted(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] VARIANT onrowsinserted();
    [propput, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] void oncellchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] VARIANT oncellchange();
    [propput, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] void dir(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] BSTR dir();
    [id(DISPID_IHTMLELEMENT2_CREATECONTROLRANGE)] IDispatch* createControlRange();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLHEIGHT), displaybind, bindable] long scrollHeight();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLWIDTH), displaybind, bindable] long scrollWidth();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] void scrollTop(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] long scrollTop();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] void scrollLeft(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] long scrollLeft();
    [id(DISPID_IHTMLELEMENT2_CLEARATTRIBUTES)] void clearAttributes();
    [id(DISPID_IHTMLELEMENT2_MERGEATTRIBUTES)] void mergeAttributes([in] IHTMLElement* mergeThis);
    [propput, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] void oncontextmenu(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] VARIANT oncontextmenu();
    [id(DISPID_IHTMLELEMENT2_INSERTADJACENTELEMENT)] IHTMLElement* insertAdjacentElement([in] BSTR where,[in] IHTMLElement* insertedElement);
    [id(DISPID_IHTMLELEMENT2_APPLYELEMENT)] IHTMLElement* applyElement([in] IHTMLElement* apply,[in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_GETADJACENTTEXT)] BSTR getAdjacentText([in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_REPLACEADJACENTTEXT)] BSTR replaceAdjacentText([in] BSTR where,[in] BSTR newText);
    [propget, id(DISPID_IHTMLELEMENT2_CANHAVECHILDREN)] VARIANT_BOOL canHaveChildren();
    [id(DISPID_IHTMLELEMENT2_ADDBEHAVIOR)] long addBehavior([in] BSTR bstrUrl,[optional, in] VARIANT* pvarFactory);
    [id(DISPID_IHTMLELEMENT2_REMOVEBEHAVIOR)] VARIANT_BOOL removeBehavior([in] long cookie);
    [propget, id(DISPID_IHTMLELEMENT2_RUNTIMESTYLE), nonbrowsable] IHTMLStyle* runtimeStyle();
    [propget, id(DISPID_IHTMLELEMENT2_BEHAVIORURNS)] IDispatch* behaviorUrns();
    [propput, id(DISPID_IHTMLELEMENT2_TAGURN)] void tagUrn(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_TAGURN)] BSTR tagUrn();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] void onbeforeeditfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] VARIANT onbeforeeditfocus();
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATEVALUE), hidden, restricted] long readyStateValue();
    [id(DISPID_IHTMLELEMENT2_GETELEMENTSBYTAGNAME)] IHTMLElementCollection* getElementsByTagName([in] BSTR v);
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUENUMBER), hidden] long uniqueNumber();
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUEID), hidden] BSTR uniqueID();
    [propget, id(DISPID_IHTMLDOMNODE_NODETYPE)] long nodeType();
    [propget, id(DISPID_IHTMLDOMNODE_PARENTNODE)] IHTMLDOMNode* parentNode();
    [id(DISPID_IHTMLDOMNODE_HASCHILDNODES)] VARIANT_BOOL hasChildNodes();
    [propget, id(DISPID_IHTMLDOMNODE_CHILDNODES)] IDispatch* childNodes();
    [propget, id(DISPID_IHTMLDOMNODE_ATTRIBUTES)] IDispatch* attributes();
    [id(DISPID_IHTMLDOMNODE_INSERTBEFORE)] IHTMLDOMNode* insertBefore([in] IHTMLDOMNode* newChild,[optional, in] VARIANT refChild);
    [id(DISPID_IHTMLDOMNODE_REMOVECHILD)] IHTMLDOMNode* removeChild([in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_REPLACECHILD)] IHTMLDOMNode* replaceChild([in] IHTMLDOMNode* newChild,[in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_CLONENODE)] IHTMLDOMNode* cloneNode([in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_REMOVENODE)] IHTMLDOMNode* removeNode([defaultvalue(0), in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_SWAPNODE)] IHTMLDOMNode* swapNode([in] IHTMLDOMNode* otherNode);
    [id(DISPID_IHTMLDOMNODE_REPLACENODE)] IHTMLDOMNode* replaceNode([in] IHTMLDOMNode* replacement);
    [id(DISPID_IHTMLDOMNODE_APPENDCHILD)] IHTMLDOMNode* appendChild([in] IHTMLDOMNode* newChild);
    [propget, id(DISPID_IHTMLDOMNODE_NODENAME)] BSTR nodeName();
    [propput, id(DISPID_IHTMLDOMNODE_NODEVALUE)] void nodeValue(VARIANT v);
    [propget, id(DISPID_IHTMLDOMNODE_NODEVALUE)] VARIANT nodeValue();
    [propget, id(DISPID_IHTMLDOMNODE_FIRSTCHILD)] IHTMLDOMNode* firstChild();
    [propget, id(DISPID_IHTMLDOMNODE_LASTCHILD)] IHTMLDOMNode* lastChild();
    [propget, id(DISPID_IHTMLDOMNODE_PREVIOUSSIBLING)] IHTMLDOMNode* previousSibling();
    [propget, id(DISPID_IHTMLDOMNODE_NEXTSIBLING)] IHTMLDOMNode* nextSibling();
    [propput, id(DISPID_IHTMLDATABINDING_DATAFLD)] void dataFld(BSTR v);
    [propget, id(DISPID_IHTMLDATABINDING_DATAFLD)] BSTR dataFld();
    [propput, id(DISPID_IHTMLDATABINDING_DATASRC)] void dataSrc(BSTR v);
    [propget, id(DISPID_IHTMLDATABINDING_DATASRC)] BSTR dataSrc();
    [propput, id(DISPID_IHTMLDATABINDING_DATAFORMATAS)] void dataFormatAs(BSTR v);
    [propget, id(DISPID_IHTMLDATABINDING_DATAFORMATAS)] BSTR dataFormatAs();
    [propget, id(DISPID_IHTMLBUTTONELEMENT_TYPE)] BSTR type();
    [propput, id(DISPID_IHTMLBUTTONELEMENT_VALUE), displaybind, bindable] void value(BSTR v);
    [propget, id(DISPID_IHTMLBUTTONELEMENT_VALUE), displaybind, bindable] BSTR value();
    [propput, id(DISPID_IHTMLBUTTONELEMENT_NAME), displaybind, bindable] void name(BSTR v);
    [propget, id(DISPID_IHTMLBUTTONELEMENT_NAME), displaybind, bindable] BSTR name();
    [propput, id(DISPID_IHTMLBUTTONELEMENT_STATUS)] void status(VARIANT v);
    [propget, id(DISPID_IHTMLBUTTONELEMENT_STATUS)] VARIANT status();
    [propput, id(DISPID_IHTMLBUTTONELEMENT_DISABLED), displaybind, bindable] void disabled(VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLBUTTONELEMENT_DISABLED), displaybind, bindable] VARIANT_BOOL disabled();
    [propget, id(DISPID_IHTMLBUTTONELEMENT_FORM)] IHTMLFormElement* form();
    [id(DISPID_IHTMLBUTTONELEMENT_CREATETEXTRANGE)] IHTMLTxtRange* createTextRange();
};
[
    uuid(3050f2c6-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLButtonElement
{
    [default]           dispinterface DispHTMLButtonElement;
    [source, default]   dispinterface HTMLButtonElementEvents;
    [source]            dispinterface HTMLButtonElementEvents2;
                        interface IHTMLElement;
                        interface IHTMLElement2;
                        interface IHTMLUniqueName;
                        interface IHTMLDOMNode;
                        interface IHTMLDatabinding;
                        interface IHTMLControlElement;
                        interface IHTMLTextContainer;
                        interface IHTMLButtonElement;
};
cpp_quote("EXTERN_C const GUID CLSID_CButton;")
[
    hidden,
    uuid(3050f61f-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface HTMLMarqueeElementEvents2
{
properties:
methods:
    [id(DISPID_HTMLELEMENTEVENTS2_ONHELP)] VARIANT_BOOL onhelp([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCLICK)] VARIANT_BOOL onclick([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDBLCLICK)] VARIANT_BOOL ondblclick([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONKEYPRESS)] VARIANT_BOOL onkeypress([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONKEYDOWN)] void onkeydown([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONKEYUP)] void onkeyup([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEOUT)] void onmouseout([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEOVER)] void onmouseover([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEMOVE)] void onmousemove([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEDOWN)] void onmousedown([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEUP)] void onmouseup([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONSELECTSTART)] VARIANT_BOOL onselectstart([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONFILTERCHANGE)] void onfilterchange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGSTART)] VARIANT_BOOL ondragstart([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFOREUPDATE)] VARIANT_BOOL onbeforeupdate([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONAFTERUPDATE)] void onafterupdate([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONERRORUPDATE)] VARIANT_BOOL onerrorupdate([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWEXIT)] VARIANT_BOOL onrowexit([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWENTER)] void onrowenter([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDATASETCHANGED)] void ondatasetchanged([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDATAAVAILABLE)] void ondataavailable([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDATASETCOMPLETE)] void ondatasetcomplete([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONLOSECAPTURE)] void onlosecapture([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONPROPERTYCHANGE)] void onpropertychange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONSCROLL)] void onscroll([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONFOCUS)] void onfocus([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBLUR)] void onblur([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONRESIZE)] void onresize([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAG)] VARIANT_BOOL ondrag([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGEND)] void ondragend([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGENTER)] VARIANT_BOOL ondragenter([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGOVER)] VARIANT_BOOL ondragover([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGLEAVE)] void ondragleave([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDROP)] VARIANT_BOOL ondrop([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFORECUT)] VARIANT_BOOL onbeforecut([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCUT)] VARIANT_BOOL oncut([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFORECOPY)] VARIANT_BOOL onbeforecopy([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCOPY)] VARIANT_BOOL oncopy([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFOREPASTE)] VARIANT_BOOL onbeforepaste([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONPASTE)] VARIANT_BOOL onpaste([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCONTEXTMENU)] VARIANT_BOOL oncontextmenu([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWSDELETE)] void onrowsdelete([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWSINSERTED)] void onrowsinserted([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCELLCHANGE)] void oncellchange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONREADYSTATECHANGE)] void onreadystatechange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLTEXTCONTAINEREVENTS2_ONCHANGE)] void onchange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLTEXTCONTAINEREVENTS2_ONSELECT)] void onselect([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLMARQUEEELEMENTEVENTS2_ONBOUNCE)] void onbounce([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLMARQUEEELEMENTEVENTS2_ONFINISH)] void onfinish([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLMARQUEEELEMENTEVENTS2_ONSTART)] void onstart([in] IHTMLEventObj* pEvtObj);
};
[
    hidden,
    uuid(3050f2b8-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface HTMLMarqueeElementEvents
{
properties:
methods:
    [id(DISPID_HTMLELEMENTEVENTS_ONHELP)] VARIANT_BOOL onhelp();
    [id(DISPID_HTMLELEMENTEVENTS_ONCLICK)] VARIANT_BOOL onclick();
    [id(DISPID_HTMLELEMENTEVENTS_ONDBLCLICK)] VARIANT_BOOL ondblclick();
    [id(DISPID_HTMLELEMENTEVENTS_ONKEYPRESS)] VARIANT_BOOL onkeypress();
    [id(DISPID_HTMLELEMENTEVENTS_ONKEYDOWN)] void onkeydown();
    [id(DISPID_HTMLELEMENTEVENTS_ONKEYUP)] void onkeyup();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEOUT)] void onmouseout();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEOVER)] void onmouseover();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEMOVE)] void onmousemove();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEDOWN)] void onmousedown();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEUP)] void onmouseup();
    [id(DISPID_HTMLELEMENTEVENTS_ONSELECTSTART)] VARIANT_BOOL onselectstart();
    [id(DISPID_HTMLELEMENTEVENTS_ONFILTERCHANGE)] void onfilterchange();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGSTART)] VARIANT_BOOL ondragstart();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREUPDATE)] VARIANT_BOOL onbeforeupdate();
    [id(DISPID_HTMLELEMENTEVENTS_ONAFTERUPDATE)] void onafterupdate();
    [id(DISPID_HTMLELEMENTEVENTS_ONERRORUPDATE)] VARIANT_BOOL onerrorupdate();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWEXIT)] VARIANT_BOOL onrowexit();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWENTER)] void onrowenter();
    [id(DISPID_HTMLELEMENTEVENTS_ONDATASETCHANGED)] void ondatasetchanged();
    [id(DISPID_HTMLELEMENTEVENTS_ONDATAAVAILABLE)] void ondataavailable();
    [id(DISPID_HTMLELEMENTEVENTS_ONDATASETCOMPLETE)] void ondatasetcomplete();
    [id(DISPID_HTMLELEMENTEVENTS_ONLOSECAPTURE)] void onlosecapture();
    [id(DISPID_HTMLELEMENTEVENTS_ONPROPERTYCHANGE)] void onpropertychange();
    [id(DISPID_HTMLELEMENTEVENTS_ONSCROLL)] void onscroll();
    [id(DISPID_HTMLELEMENTEVENTS_ONFOCUS)] void onfocus();
    [id(DISPID_HTMLELEMENTEVENTS_ONBLUR)] void onblur();
    [id(DISPID_HTMLELEMENTEVENTS_ONRESIZE)] void onresize();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAG)] VARIANT_BOOL ondrag();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGEND)] void ondragend();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGENTER)] VARIANT_BOOL ondragenter();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGOVER)] VARIANT_BOOL ondragover();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGLEAVE)] void ondragleave();
    [id(DISPID_HTMLELEMENTEVENTS_ONDROP)] VARIANT_BOOL ondrop();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFORECUT)] VARIANT_BOOL onbeforecut();
    [id(DISPID_HTMLELEMENTEVENTS_ONCUT)] VARIANT_BOOL oncut();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFORECOPY)] VARIANT_BOOL onbeforecopy();
    [id(DISPID_HTMLELEMENTEVENTS_ONCOPY)] VARIANT_BOOL oncopy();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREPASTE)] VARIANT_BOOL onbeforepaste();
    [id(DISPID_HTMLELEMENTEVENTS_ONPASTE)] VARIANT_BOOL onpaste();
    [id(DISPID_HTMLELEMENTEVENTS_ONCONTEXTMENU)] VARIANT_BOOL oncontextmenu();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWSDELETE)] void onrowsdelete();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWSINSERTED)] void onrowsinserted();
    [id(DISPID_HTMLELEMENTEVENTS_ONCELLCHANGE)] void oncellchange();
    [id(DISPID_HTMLELEMENTEVENTS_ONREADYSTATECHANGE)] void onreadystatechange();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREEDITFOCUS)] void onbeforeeditfocus();
    [id(DISPID_HTMLTEXTCONTAINEREVENTS_ONCHANGE)] void onchange();
    [id(DISPID_HTMLTEXTCONTAINEREVENTS_ONSELECT)] void onselect();
    [id(DISPID_HTMLMARQUEEELEMENTEVENTS_ONBOUNCE)] void onbounce();
    [id(DISPID_HTMLMARQUEEELEMENTEVENTS_ONFINISH)] void onfinish();
    [id(DISPID_HTMLMARQUEEELEMENTEVENTS_ONSTART)] void onstart();
};
typedef enum _htmlMarqueeBehavior
{
    htmlMarqueeBehaviorscroll = 1,
    htmlMarqueeBehaviorslide = 2,
    htmlMarqueeBehavioralternate = 3,
    htmlMarqueeBehavior_Max = 2147483647L
} htmlMarqueeBehavior;

typedef enum _htmlMarqueeDirection
{
    htmlMarqueeDirectionleft = 1,
    htmlMarqueeDirectionright = 3,
    htmlMarqueeDirectionup = 5,
    htmlMarqueeDirectiondown = 7,
    htmlMarqueeDirection_Max = 2147483647L
} htmlMarqueeDirection;

[
    odl,
    oleautomation,
    dual,
    uuid(3050f2b5-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLMarqueeElement : IDispatch
{
    [propput, id(DISPID_IHTMLMARQUEEELEMENT_BGCOLOR)] HRESULT bgColor([in] VARIANT v);
    [propget, id(DISPID_IHTMLMARQUEEELEMENT_BGCOLOR)] HRESULT bgColor([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLMARQUEEELEMENT_SCROLLDELAY)] HRESULT scrollDelay([in] long v);
    [propget, id(DISPID_IHTMLMARQUEEELEMENT_SCROLLDELAY)] HRESULT scrollDelay([retval, out] long * p);
    [propput, id(DISPID_IHTMLMARQUEEELEMENT_DIRECTION)] HRESULT direction([in] BSTR v);
    [propget, id(DISPID_IHTMLMARQUEEELEMENT_DIRECTION)] HRESULT direction([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLMARQUEEELEMENT_BEHAVIOR)] HRESULT behavior([in] BSTR v);
    [propget, id(DISPID_IHTMLMARQUEEELEMENT_BEHAVIOR)] HRESULT behavior([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLMARQUEEELEMENT_SCROLLAMOUNT)] HRESULT scrollAmount([in] long v);
    [propget, id(DISPID_IHTMLMARQUEEELEMENT_SCROLLAMOUNT)] HRESULT scrollAmount([retval, out] long * p);
    [propput, id(DISPID_IHTMLMARQUEEELEMENT_LOOP)] HRESULT loop([in] long v);
    [propget, id(DISPID_IHTMLMARQUEEELEMENT_LOOP)] HRESULT loop([retval, out] long * p);
    [propput, id(DISPID_IHTMLMARQUEEELEMENT_VSPACE)] HRESULT vspace([in] long v);
    [propget, id(DISPID_IHTMLMARQUEEELEMENT_VSPACE)] HRESULT vspace([retval, out] long * p);
    [propput, id(DISPID_IHTMLMARQUEEELEMENT_HSPACE)] HRESULT hspace([in] long v);
    [propget, id(DISPID_IHTMLMARQUEEELEMENT_HSPACE)] HRESULT hspace([retval, out] long * p);
    [propput, id(DISPID_IHTMLMARQUEEELEMENT_ONFINISH), displaybind, bindable] HRESULT onfinish([in] VARIANT v);
    [propget, id(DISPID_IHTMLMARQUEEELEMENT_ONFINISH), displaybind, bindable] HRESULT onfinish([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLMARQUEEELEMENT_ONSTART), displaybind, bindable] HRESULT onstart([in] VARIANT v);
    [propget, id(DISPID_IHTMLMARQUEEELEMENT_ONSTART), displaybind, bindable] HRESULT onstart([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLMARQUEEELEMENT_ONBOUNCE), displaybind, bindable] HRESULT onbounce([in] VARIANT v);
    [propget, id(DISPID_IHTMLMARQUEEELEMENT_ONBOUNCE), displaybind, bindable] HRESULT onbounce([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLMARQUEEELEMENT_WIDTH)] HRESULT width([in] VARIANT v);
    [propget, id(DISPID_IHTMLMARQUEEELEMENT_WIDTH)] HRESULT width([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLMARQUEEELEMENT_HEIGHT)] HRESULT height([in] VARIANT v);
    [propget, id(DISPID_IHTMLMARQUEEELEMENT_HEIGHT)] HRESULT height([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLMARQUEEELEMENT_TRUESPEED), displaybind, bindable] HRESULT trueSpeed([in] VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLMARQUEEELEMENT_TRUESPEED), displaybind, bindable] HRESULT trueSpeed([retval, out] VARIANT_BOOL * p);
    [id(DISPID_IHTMLMARQUEEELEMENT_START)] HRESULT start();
    [id(DISPID_IHTMLMARQUEEELEMENT_STOP)] HRESULT stop();
};
[
    hidden,
    uuid(3050f527-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTMLMarqueeElement
{
properties:
methods:
    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)] void setAttribute([in] BSTR strAttributeName,[in] VARIANT AttributeValue,[defaultvalue(1), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)] VARIANT getAttribute([in] BSTR strAttributeName,[defaultvalue(0), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)] VARIANT_BOOL removeAttribute([in] BSTR strAttributeName,[defaultvalue(1), in] LONG lFlags);
    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] void className(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] BSTR className();
    [propput, id(DISPID_IHTMLELEMENT_ID), bindable] void id(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_ID), bindable] BSTR id();
    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)] BSTR tagName();
    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)] IHTMLElement* parentElement();
    [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable] IHTMLStyle* style();
    [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] void onhelp(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] VARIANT onhelp();
    [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] void onclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] VARIANT onclick();
    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] void ondblclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] VARIANT ondblclick();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] void onkeydown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] VARIANT onkeydown();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] void onkeyup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] VARIANT onkeyup();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] void onkeypress(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] VARIANT onkeypress();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] void onmouseout(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] VARIANT onmouseout();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] void onmouseover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] VARIANT onmouseover();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] void onmousemove(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] VARIANT onmousemove();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] void onmousedown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] VARIANT onmousedown();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] void onmouseup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] VARIANT onmouseup();
    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)] IDispatch* document();
    [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] void title(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] BSTR title();
    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] void language(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] BSTR language();
    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] void onselectstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] VARIANT onselectstart();
    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)] void scrollIntoView([optional, in] VARIANT varargStart);
    [id(DISPID_IHTMLELEMENT_CONTAINS)] VARIANT_BOOL contains([in] IHTMLElement* pChild);
    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable] long sourceIndex();
    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)] VARIANT recordNumber();
    [propput, id(DISPID_IHTMLELEMENT_LANG)] void lang(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANG)] BSTR lang();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)] long offsetLeft();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)] long offsetTop();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)] long offsetWidth();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)] long offsetHeight();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)] IHTMLElement* offsetParent();
    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)] void innerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)] BSTR innerHTML();
    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)] void innerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)] BSTR innerText();
    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)] void outerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)] BSTR outerHTML();
    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)] void outerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)] BSTR outerText();
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)] void insertAdjacentHTML([in] BSTR where,[in] BSTR html);
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)] void insertAdjacentText([in] BSTR where,[in] BSTR text);
    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)] IHTMLElement* parentTextEdit();
    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)] VARIANT_BOOL isTextEdit();
    [id(DISPID_IHTMLELEMENT_CLICK)] void click();
    [propget, id(DISPID_IHTMLELEMENT_FILTERS)] IHTMLFiltersCollection* filters();
    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] void ondragstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] VARIANT ondragstart();
    [id(DISPID_IHTMLELEMENT_TOSTRING)] BSTR toString();
    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] void onbeforeupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] VARIANT onbeforeupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] void onafterupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] VARIANT onafterupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] void onerrorupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] VARIANT onerrorupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] void onrowexit(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] VARIANT onrowexit();
    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] void onrowenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] VARIANT onrowenter();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] void ondatasetchanged(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] VARIANT ondatasetchanged();
    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] void ondataavailable(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] VARIANT ondataavailable();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] void ondatasetcomplete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] VARIANT ondatasetcomplete();
    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] void onfilterchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] VARIANT onfilterchange();
    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)] IDispatch* children();
    [propget, id(DISPID_IHTMLELEMENT_ALL)] IDispatch* all();
    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)] BSTR scopeName();
    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)] void setCapture([defaultvalue(-1), in] VARIANT_BOOL containerCapture);
    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)] void releaseCapture();
    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] void onlosecapture(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] VARIANT onlosecapture();
    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)] BSTR componentFromPoint([in] long x,[in] long y);
    [id(DISPID_IHTMLELEMENT2_DOSCROLL)] void doScroll([optional, in] VARIANT component);
    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] void onscroll(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] VARIANT onscroll();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] void ondrag(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] VARIANT ondrag();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] void ondragend(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] VARIANT ondragend();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] void ondragenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] VARIANT ondragenter();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] void ondragover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] VARIANT ondragover();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] void ondragleave(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] VARIANT ondragleave();
    [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] void ondrop(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] VARIANT ondrop();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] void onbeforecut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] VARIANT onbeforecut();
    [propput, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] void oncut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] VARIANT oncut();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] void onbeforecopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] VARIANT onbeforecopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] void oncopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] VARIANT oncopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] void onbeforepaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] VARIANT onbeforepaste();
    [propput, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] void onpaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] VARIANT onpaste();
    [propget, id(DISPID_IHTMLELEMENT2_CURRENTSTYLE), nonbrowsable] IHTMLCurrentStyle* currentStyle();
    [propput, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] void onpropertychange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] VARIANT onpropertychange();
    [id(DISPID_IHTMLELEMENT2_GETCLIENTRECTS)] IHTMLRectCollection* getClientRects();
    [id(DISPID_IHTMLELEMENT2_GETBOUNDINGCLIENTRECT)] IHTMLRect* getBoundingClientRect();
    [id(DISPID_IHTMLELEMENT2_SETEXPRESSION)] void setExpression([in] BSTR propname,[in] BSTR expression,[defaultvalue(""), in] BSTR language);
    [id(DISPID_IHTMLELEMENT2_GETEXPRESSION)] VARIANT getExpression([in] BSTR propname);
    [id(DISPID_IHTMLELEMENT2_REMOVEEXPRESSION)] VARIANT_BOOL removeExpression([in] BSTR propname);
    [propput, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] void tabIndex(short v);
    [propget, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] short tabIndex();
    [id(DISPID_IHTMLELEMENT2_FOCUS)] void focus();
    [propput, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] void accessKey(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] BSTR accessKey();
    [propput, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] void onblur(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] VARIANT onblur();
    [propput, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] void onfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] VARIANT onfocus();
    [propput, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] void onresize(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] VARIANT onresize();
    [id(DISPID_IHTMLELEMENT2_BLUR)] void blur();
    [id(DISPID_IHTMLELEMENT2_ADDFILTER)] void addFilter([in] IUnknown* pUnk);
    [id(DISPID_IHTMLELEMENT2_REMOVEFILTER)] void removeFilter([in] IUnknown* pUnk);
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTHEIGHT), displaybind, bindable] long clientHeight();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTWIDTH), displaybind, bindable] long clientWidth();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTTOP), displaybind, bindable] long clientTop();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTLEFT), displaybind, bindable] long clientLeft();
    [id(DISPID_IHTMLELEMENT2_ATTACHEVENT)] VARIANT_BOOL attachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [id(DISPID_IHTMLELEMENT2_DETACHEVENT)] void detachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATE)] VARIANT readyState();
    [propput, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] void onreadystatechange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] VARIANT onreadystatechange();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] void onrowsdelete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] VARIANT onrowsdelete();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] void onrowsinserted(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] VARIANT onrowsinserted();
    [propput, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] void oncellchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] VARIANT oncellchange();
    [propput, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] void dir(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] BSTR dir();
    [id(DISPID_IHTMLELEMENT2_CREATECONTROLRANGE)] IDispatch* createControlRange();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLHEIGHT), displaybind, bindable] long scrollHeight();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLWIDTH), displaybind, bindable] long scrollWidth();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] void scrollTop(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] long scrollTop();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] void scrollLeft(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] long scrollLeft();
    [id(DISPID_IHTMLELEMENT2_CLEARATTRIBUTES)] void clearAttributes();
    [id(DISPID_IHTMLELEMENT2_MERGEATTRIBUTES)] void mergeAttributes([in] IHTMLElement* mergeThis);
    [propput, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] void oncontextmenu(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] VARIANT oncontextmenu();
    [id(DISPID_IHTMLELEMENT2_INSERTADJACENTELEMENT)] IHTMLElement* insertAdjacentElement([in] BSTR where,[in] IHTMLElement* insertedElement);
    [id(DISPID_IHTMLELEMENT2_APPLYELEMENT)] IHTMLElement* applyElement([in] IHTMLElement* apply,[in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_GETADJACENTTEXT)] BSTR getAdjacentText([in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_REPLACEADJACENTTEXT)] BSTR replaceAdjacentText([in] BSTR where,[in] BSTR newText);
    [propget, id(DISPID_IHTMLELEMENT2_CANHAVECHILDREN)] VARIANT_BOOL canHaveChildren();
    [id(DISPID_IHTMLELEMENT2_ADDBEHAVIOR)] long addBehavior([in] BSTR bstrUrl,[optional, in] VARIANT* pvarFactory);
    [id(DISPID_IHTMLELEMENT2_REMOVEBEHAVIOR)] VARIANT_BOOL removeBehavior([in] long cookie);
    [propget, id(DISPID_IHTMLELEMENT2_RUNTIMESTYLE), nonbrowsable] IHTMLStyle* runtimeStyle();
    [propget, id(DISPID_IHTMLELEMENT2_BEHAVIORURNS)] IDispatch* behaviorUrns();
    [propput, id(DISPID_IHTMLELEMENT2_TAGURN)] void tagUrn(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_TAGURN)] BSTR tagUrn();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] void onbeforeeditfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] VARIANT onbeforeeditfocus();
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATEVALUE), hidden, restricted] long readyStateValue();
    [id(DISPID_IHTMLELEMENT2_GETELEMENTSBYTAGNAME)] IHTMLElementCollection* getElementsByTagName([in] BSTR v);
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUENUMBER), hidden] long uniqueNumber();
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUEID), hidden] BSTR uniqueID();
    [propget, id(DISPID_IHTMLDOMNODE_NODETYPE)] long nodeType();
    [propget, id(DISPID_IHTMLDOMNODE_PARENTNODE)] IHTMLDOMNode* parentNode();
    [id(DISPID_IHTMLDOMNODE_HASCHILDNODES)] VARIANT_BOOL hasChildNodes();
    [propget, id(DISPID_IHTMLDOMNODE_CHILDNODES)] IDispatch* childNodes();
    [propget, id(DISPID_IHTMLDOMNODE_ATTRIBUTES)] IDispatch* attributes();
    [id(DISPID_IHTMLDOMNODE_INSERTBEFORE)] IHTMLDOMNode* insertBefore([in] IHTMLDOMNode* newChild,[optional, in] VARIANT refChild);
    [id(DISPID_IHTMLDOMNODE_REMOVECHILD)] IHTMLDOMNode* removeChild([in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_REPLACECHILD)] IHTMLDOMNode* replaceChild([in] IHTMLDOMNode* newChild,[in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_CLONENODE)] IHTMLDOMNode* cloneNode([in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_REMOVENODE)] IHTMLDOMNode* removeNode([defaultvalue(0), in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_SWAPNODE)] IHTMLDOMNode* swapNode([in] IHTMLDOMNode* otherNode);
    [id(DISPID_IHTMLDOMNODE_REPLACENODE)] IHTMLDOMNode* replaceNode([in] IHTMLDOMNode* replacement);
    [id(DISPID_IHTMLDOMNODE_APPENDCHILD)] IHTMLDOMNode* appendChild([in] IHTMLDOMNode* newChild);
    [propget, id(DISPID_IHTMLDOMNODE_NODENAME)] BSTR nodeName();
    [propput, id(DISPID_IHTMLDOMNODE_NODEVALUE)] void nodeValue(VARIANT v);
    [propget, id(DISPID_IHTMLDOMNODE_NODEVALUE)] VARIANT nodeValue();
    [propget, id(DISPID_IHTMLDOMNODE_FIRSTCHILD)] IHTMLDOMNode* firstChild();
    [propget, id(DISPID_IHTMLDOMNODE_LASTCHILD)] IHTMLDOMNode* lastChild();
    [propget, id(DISPID_IHTMLDOMNODE_PREVIOUSSIBLING)] IHTMLDOMNode* previousSibling();
    [propget, id(DISPID_IHTMLDOMNODE_NEXTSIBLING)] IHTMLDOMNode* nextSibling();
    [propput, id(DISPID_IHTMLDATABINDING_DATAFLD)] void dataFld(BSTR v);
    [propget, id(DISPID_IHTMLDATABINDING_DATAFLD)] BSTR dataFld();
    [propput, id(DISPID_IHTMLDATABINDING_DATASRC)] void dataSrc(BSTR v);
    [propget, id(DISPID_IHTMLDATABINDING_DATASRC)] BSTR dataSrc();
    [propput, id(DISPID_IHTMLDATABINDING_DATAFORMATAS)] void dataFormatAs(BSTR v);
    [propget, id(DISPID_IHTMLDATABINDING_DATAFORMATAS)] BSTR dataFormatAs();
    [propput, id(DISPID_IHTMLMARQUEEELEMENT_BGCOLOR)] void bgColor(VARIANT v);
    [propget, id(DISPID_IHTMLMARQUEEELEMENT_BGCOLOR)] VARIANT bgColor();
    [propput, id(DISPID_IHTMLMARQUEEELEMENT_SCROLLDELAY)] void scrollDelay(long v);
    [propget, id(DISPID_IHTMLMARQUEEELEMENT_SCROLLDELAY)] long scrollDelay();
    [propput, id(DISPID_IHTMLMARQUEEELEMENT_DIRECTION)] void direction(BSTR v);
    [propget, id(DISPID_IHTMLMARQUEEELEMENT_DIRECTION)] BSTR direction();
    [propput, id(DISPID_IHTMLMARQUEEELEMENT_BEHAVIOR)] void behavior(BSTR v);
    [propget, id(DISPID_IHTMLMARQUEEELEMENT_BEHAVIOR)] BSTR behavior();
    [propput, id(DISPID_IHTMLMARQUEEELEMENT_SCROLLAMOUNT)] void scrollAmount(long v);
    [propget, id(DISPID_IHTMLMARQUEEELEMENT_SCROLLAMOUNT)] long scrollAmount();
    [propput, id(DISPID_IHTMLMARQUEEELEMENT_LOOP)] void loop(long v);
    [propget, id(DISPID_IHTMLMARQUEEELEMENT_LOOP)] long loop();
    [propput, id(DISPID_IHTMLMARQUEEELEMENT_VSPACE)] void vspace(long v);
    [propget, id(DISPID_IHTMLMARQUEEELEMENT_VSPACE)] long vspace();
    [propput, id(DISPID_IHTMLMARQUEEELEMENT_HSPACE)] void hspace(long v);
    [propget, id(DISPID_IHTMLMARQUEEELEMENT_HSPACE)] long hspace();
    [propput, id(DISPID_IHTMLMARQUEEELEMENT_ONFINISH), displaybind, bindable] void onfinish(VARIANT v);
    [propget, id(DISPID_IHTMLMARQUEEELEMENT_ONFINISH), displaybind, bindable] VARIANT onfinish();
    [propput, id(DISPID_IHTMLMARQUEEELEMENT_ONSTART), displaybind, bindable] void onstart(VARIANT v);
    [propget, id(DISPID_IHTMLMARQUEEELEMENT_ONSTART), displaybind, bindable] VARIANT onstart();
    [propput, id(DISPID_IHTMLMARQUEEELEMENT_ONBOUNCE), displaybind, bindable] void onbounce(VARIANT v);
    [propget, id(DISPID_IHTMLMARQUEEELEMENT_ONBOUNCE), displaybind, bindable] VARIANT onbounce();
    [propput, id(DISPID_IHTMLMARQUEEELEMENT_WIDTH)] void width(VARIANT v);
    [propget, id(DISPID_IHTMLMARQUEEELEMENT_WIDTH)] VARIANT width();
    [propput, id(DISPID_IHTMLMARQUEEELEMENT_HEIGHT)] void height(VARIANT v);
    [propget, id(DISPID_IHTMLMARQUEEELEMENT_HEIGHT)] VARIANT height();
    [propput, id(DISPID_IHTMLMARQUEEELEMENT_TRUESPEED), displaybind, bindable] void trueSpeed(VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLMARQUEEELEMENT_TRUESPEED), displaybind, bindable] VARIANT_BOOL trueSpeed();
    [id(DISPID_IHTMLMARQUEEELEMENT_START)] void start();
    [id(DISPID_IHTMLMARQUEEELEMENT_STOP)] void stop();
};
[
    uuid(3050f2b9-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLMarqueeElement
{
    [default]           dispinterface DispHTMLMarqueeElement;
    [source, default]   dispinterface HTMLMarqueeElementEvents;
    [source]            dispinterface HTMLMarqueeElementEvents2;
                        interface IHTMLElement;
                        interface IHTMLElement2;
                        interface IHTMLUniqueName;
                        interface IHTMLDOMNode;
                        interface IHTMLDatabinding;
                        interface IHTMLControlElement;
                        interface IHTMLTextContainer;
                        interface IHTMLMarqueeElement;
};
cpp_quote("EXTERN_C const GUID CLSID_CMarquee;")
[
    odl,
    oleautomation,
    dual,
    uuid(3050f322-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLTitleElement : IDispatch
{
    [propput, id(DISPID_IHTMLTITLEELEMENT_TEXT), bindable] HRESULT text([in] BSTR v);
    [propget, id(DISPID_IHTMLTITLEELEMENT_TEXT), bindable] HRESULT text([retval, out] BSTR * p);
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f203-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLMetaElement : IDispatch
{
    [propput, id(DISPID_IHTMLMETAELEMENT_HTTPEQUIV), displaybind, bindable] HRESULT httpEquiv([in] BSTR v);
    [propget, id(DISPID_IHTMLMETAELEMENT_HTTPEQUIV), displaybind, bindable] HRESULT httpEquiv([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLMETAELEMENT_CONTENT), displaybind, bindable] HRESULT content([in] BSTR v);
    [propget, id(DISPID_IHTMLMETAELEMENT_CONTENT), displaybind, bindable] HRESULT content([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLMETAELEMENT_NAME), displaybind, bindable] HRESULT name([in] BSTR v);
    [propget, id(DISPID_IHTMLMETAELEMENT_NAME), displaybind, bindable] HRESULT name([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLMETAELEMENT_URL), displaybind, bindable] HRESULT url([in] BSTR v);
    [propget, id(DISPID_IHTMLMETAELEMENT_URL), displaybind, bindable] HRESULT url([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLMETAELEMENT_CHARSET), displaybind, bindable] HRESULT charset([in] BSTR v);
    [propget, id(DISPID_IHTMLMETAELEMENT_CHARSET), displaybind, bindable] HRESULT charset([retval, out] BSTR * p);
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f204-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLBaseElement : IDispatch
{
    [propput, id(DISPID_IHTMLBASEELEMENT_HREF), displaybind, bindable] HRESULT href([in] BSTR v);
    [propget, id(DISPID_IHTMLBASEELEMENT_HREF), displaybind, bindable] HRESULT href([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLBASEELEMENT_TARGET), displaybind, bindable] HRESULT target([in] BSTR v);
    [propget, id(DISPID_IHTMLBASEELEMENT_TARGET), displaybind, bindable] HRESULT target([retval, out] BSTR * p);
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f206-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLIsIndexElement : IDispatch
{
    [propput, id(DISPID_IHTMLISINDEXELEMENT_PROMPT), displaybind, bindable] HRESULT prompt([in] BSTR v);
    [propget, id(DISPID_IHTMLISINDEXELEMENT_PROMPT), displaybind, bindable] HRESULT prompt([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLISINDEXELEMENT_ACTION), displaybind, bindable] HRESULT action([in] BSTR v);
    [propget, id(DISPID_IHTMLISINDEXELEMENT_ACTION), displaybind, bindable] HRESULT action([retval, out] BSTR * p);
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f207-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLNextIdElement : IDispatch
{
    [propput, id(DISPID_IHTMLNEXTIDELEMENT_N), displaybind, bindable] HRESULT n([in] BSTR v);
    [propget, id(DISPID_IHTMLNEXTIDELEMENT_N), displaybind, bindable] HRESULT n([retval, out] BSTR * p);
};
[
    hidden,
    uuid(3050f560-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTMLHtmlElement
{
properties:
methods:
    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)] void setAttribute([in] BSTR strAttributeName,[in] VARIANT AttributeValue,[defaultvalue(1), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)] VARIANT getAttribute([in] BSTR strAttributeName,[defaultvalue(0), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)] VARIANT_BOOL removeAttribute([in] BSTR strAttributeName,[defaultvalue(1), in] LONG lFlags);
    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] void className(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] BSTR className();
    [propput, id(DISPID_IHTMLELEMENT_ID), bindable] void id(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_ID), bindable] BSTR id();
    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)] BSTR tagName();
    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)] IHTMLElement* parentElement();
    [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable] IHTMLStyle* style();
    [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] void onhelp(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] VARIANT onhelp();
    [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] void onclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] VARIANT onclick();
    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] void ondblclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] VARIANT ondblclick();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] void onkeydown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] VARIANT onkeydown();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] void onkeyup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] VARIANT onkeyup();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] void onkeypress(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] VARIANT onkeypress();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] void onmouseout(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] VARIANT onmouseout();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] void onmouseover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] VARIANT onmouseover();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] void onmousemove(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] VARIANT onmousemove();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] void onmousedown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] VARIANT onmousedown();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] void onmouseup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] VARIANT onmouseup();
    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)] IDispatch* document();
    [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] void title(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] BSTR title();
    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] void language(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] BSTR language();
    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] void onselectstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] VARIANT onselectstart();
    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)] void scrollIntoView([optional, in] VARIANT varargStart);
    [id(DISPID_IHTMLELEMENT_CONTAINS)] VARIANT_BOOL contains([in] IHTMLElement* pChild);
    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable] long sourceIndex();
    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)] VARIANT recordNumber();
    [propput, id(DISPID_IHTMLELEMENT_LANG)] void lang(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANG)] BSTR lang();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)] long offsetLeft();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)] long offsetTop();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)] long offsetWidth();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)] long offsetHeight();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)] IHTMLElement* offsetParent();
    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)] void innerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)] BSTR innerHTML();
    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)] void innerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)] BSTR innerText();
    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)] void outerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)] BSTR outerHTML();
    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)] void outerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)] BSTR outerText();
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)] void insertAdjacentHTML([in] BSTR where,[in] BSTR html);
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)] void insertAdjacentText([in] BSTR where,[in] BSTR text);
    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)] IHTMLElement* parentTextEdit();
    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)] VARIANT_BOOL isTextEdit();
    [id(DISPID_IHTMLELEMENT_CLICK)] void click();
    [propget, id(DISPID_IHTMLELEMENT_FILTERS)] IHTMLFiltersCollection* filters();
    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] void ondragstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] VARIANT ondragstart();
    [id(DISPID_IHTMLELEMENT_TOSTRING)] BSTR toString();
    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] void onbeforeupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] VARIANT onbeforeupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] void onafterupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] VARIANT onafterupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] void onerrorupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] VARIANT onerrorupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] void onrowexit(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] VARIANT onrowexit();
    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] void onrowenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] VARIANT onrowenter();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] void ondatasetchanged(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] VARIANT ondatasetchanged();
    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] void ondataavailable(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] VARIANT ondataavailable();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] void ondatasetcomplete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] VARIANT ondatasetcomplete();
    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] void onfilterchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] VARIANT onfilterchange();
    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)] IDispatch* children();
    [propget, id(DISPID_IHTMLELEMENT_ALL)] IDispatch* all();
    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)] BSTR scopeName();
    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)] void setCapture([defaultvalue(-1), in] VARIANT_BOOL containerCapture);
    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)] void releaseCapture();
    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] void onlosecapture(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] VARIANT onlosecapture();
    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)] BSTR componentFromPoint([in] long x,[in] long y);
    [id(DISPID_IHTMLELEMENT2_DOSCROLL)] void doScroll([optional, in] VARIANT component);
    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] void onscroll(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] VARIANT onscroll();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] void ondrag(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] VARIANT ondrag();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] void ondragend(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] VARIANT ondragend();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] void ondragenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] VARIANT ondragenter();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] void ondragover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] VARIANT ondragover();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] void ondragleave(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] VARIANT ondragleave();
    [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] void ondrop(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] VARIANT ondrop();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] void onbeforecut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] VARIANT onbeforecut();
    [propput, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] void oncut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] VARIANT oncut();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] void onbeforecopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] VARIANT onbeforecopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] void oncopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] VARIANT oncopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] void onbeforepaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] VARIANT onbeforepaste();
    [propput, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] void onpaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] VARIANT onpaste();
    [propget, id(DISPID_IHTMLELEMENT2_CURRENTSTYLE), nonbrowsable] IHTMLCurrentStyle* currentStyle();
    [propput, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] void onpropertychange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] VARIANT onpropertychange();
    [id(DISPID_IHTMLELEMENT2_GETCLIENTRECTS)] IHTMLRectCollection* getClientRects();
    [id(DISPID_IHTMLELEMENT2_GETBOUNDINGCLIENTRECT)] IHTMLRect* getBoundingClientRect();
    [id(DISPID_IHTMLELEMENT2_SETEXPRESSION)] void setExpression([in] BSTR propname,[in] BSTR expression,[defaultvalue(""), in] BSTR language);
    [id(DISPID_IHTMLELEMENT2_GETEXPRESSION)] VARIANT getExpression([in] BSTR propname);
    [id(DISPID_IHTMLELEMENT2_REMOVEEXPRESSION)] VARIANT_BOOL removeExpression([in] BSTR propname);
    [propput, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] void tabIndex(short v);
    [propget, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] short tabIndex();
    [id(DISPID_IHTMLELEMENT2_FOCUS)] void focus();
    [propput, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] void accessKey(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] BSTR accessKey();
    [propput, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] void onblur(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] VARIANT onblur();
    [propput, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] void onfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] VARIANT onfocus();
    [propput, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] void onresize(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] VARIANT onresize();
    [id(DISPID_IHTMLELEMENT2_BLUR)] void blur();
    [id(DISPID_IHTMLELEMENT2_ADDFILTER)] void addFilter([in] IUnknown* pUnk);
    [id(DISPID_IHTMLELEMENT2_REMOVEFILTER)] void removeFilter([in] IUnknown* pUnk);
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTHEIGHT), displaybind, bindable] long clientHeight();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTWIDTH), displaybind, bindable] long clientWidth();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTTOP), displaybind, bindable] long clientTop();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTLEFT), displaybind, bindable] long clientLeft();
    [id(DISPID_IHTMLELEMENT2_ATTACHEVENT)] VARIANT_BOOL attachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [id(DISPID_IHTMLELEMENT2_DETACHEVENT)] void detachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATE)] VARIANT readyState();
    [propput, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] void onreadystatechange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] VARIANT onreadystatechange();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] void onrowsdelete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] VARIANT onrowsdelete();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] void onrowsinserted(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] VARIANT onrowsinserted();
    [propput, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] void oncellchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] VARIANT oncellchange();
    [propput, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] void dir(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] BSTR dir();
    [id(DISPID_IHTMLELEMENT2_CREATECONTROLRANGE)] IDispatch* createControlRange();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLHEIGHT), displaybind, bindable] long scrollHeight();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLWIDTH), displaybind, bindable] long scrollWidth();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] void scrollTop(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] long scrollTop();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] void scrollLeft(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] long scrollLeft();
    [id(DISPID_IHTMLELEMENT2_CLEARATTRIBUTES)] void clearAttributes();
    [id(DISPID_IHTMLELEMENT2_MERGEATTRIBUTES)] void mergeAttributes([in] IHTMLElement* mergeThis);
    [propput, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] void oncontextmenu(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] VARIANT oncontextmenu();
    [id(DISPID_IHTMLELEMENT2_INSERTADJACENTELEMENT)] IHTMLElement* insertAdjacentElement([in] BSTR where,[in] IHTMLElement* insertedElement);
    [id(DISPID_IHTMLELEMENT2_APPLYELEMENT)] IHTMLElement* applyElement([in] IHTMLElement* apply,[in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_GETADJACENTTEXT)] BSTR getAdjacentText([in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_REPLACEADJACENTTEXT)] BSTR replaceAdjacentText([in] BSTR where,[in] BSTR newText);
    [propget, id(DISPID_IHTMLELEMENT2_CANHAVECHILDREN)] VARIANT_BOOL canHaveChildren();
    [id(DISPID_IHTMLELEMENT2_ADDBEHAVIOR)] long addBehavior([in] BSTR bstrUrl,[optional, in] VARIANT* pvarFactory);
    [id(DISPID_IHTMLELEMENT2_REMOVEBEHAVIOR)] VARIANT_BOOL removeBehavior([in] long cookie);
    [propget, id(DISPID_IHTMLELEMENT2_RUNTIMESTYLE), nonbrowsable] IHTMLStyle* runtimeStyle();
    [propget, id(DISPID_IHTMLELEMENT2_BEHAVIORURNS)] IDispatch* behaviorUrns();
    [propput, id(DISPID_IHTMLELEMENT2_TAGURN)] void tagUrn(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_TAGURN)] BSTR tagUrn();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] void onbeforeeditfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] VARIANT onbeforeeditfocus();
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATEVALUE), hidden, restricted] long readyStateValue();
    [id(DISPID_IHTMLELEMENT2_GETELEMENTSBYTAGNAME)] IHTMLElementCollection* getElementsByTagName([in] BSTR v);
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUENUMBER), hidden] long uniqueNumber();
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUEID), hidden] BSTR uniqueID();
    [propget, id(DISPID_IHTMLDOMNODE_NODETYPE)] long nodeType();
    [propget, id(DISPID_IHTMLDOMNODE_PARENTNODE)] IHTMLDOMNode* parentNode();
    [id(DISPID_IHTMLDOMNODE_HASCHILDNODES)] VARIANT_BOOL hasChildNodes();
    [propget, id(DISPID_IHTMLDOMNODE_CHILDNODES)] IDispatch* childNodes();
    [propget, id(DISPID_IHTMLDOMNODE_ATTRIBUTES)] IDispatch* attributes();
    [id(DISPID_IHTMLDOMNODE_INSERTBEFORE)] IHTMLDOMNode* insertBefore([in] IHTMLDOMNode* newChild,[optional, in] VARIANT refChild);
    [id(DISPID_IHTMLDOMNODE_REMOVECHILD)] IHTMLDOMNode* removeChild([in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_REPLACECHILD)] IHTMLDOMNode* replaceChild([in] IHTMLDOMNode* newChild,[in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_CLONENODE)] IHTMLDOMNode* cloneNode([in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_REMOVENODE)] IHTMLDOMNode* removeNode([defaultvalue(0), in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_SWAPNODE)] IHTMLDOMNode* swapNode([in] IHTMLDOMNode* otherNode);
    [id(DISPID_IHTMLDOMNODE_REPLACENODE)] IHTMLDOMNode* replaceNode([in] IHTMLDOMNode* replacement);
    [id(DISPID_IHTMLDOMNODE_APPENDCHILD)] IHTMLDOMNode* appendChild([in] IHTMLDOMNode* newChild);
    [propget, id(DISPID_IHTMLDOMNODE_NODENAME)] BSTR nodeName();
    [propput, id(DISPID_IHTMLDOMNODE_NODEVALUE)] void nodeValue(VARIANT v);
    [propget, id(DISPID_IHTMLDOMNODE_NODEVALUE)] VARIANT nodeValue();
    [propget, id(DISPID_IHTMLDOMNODE_FIRSTCHILD)] IHTMLDOMNode* firstChild();
    [propget, id(DISPID_IHTMLDOMNODE_LASTCHILD)] IHTMLDOMNode* lastChild();
    [propget, id(DISPID_IHTMLDOMNODE_PREVIOUSSIBLING)] IHTMLDOMNode* previousSibling();
    [propget, id(DISPID_IHTMLDOMNODE_NEXTSIBLING)] IHTMLDOMNode* nextSibling();
};
[
    uuid(3050f491-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLHtmlElement
{
    [default]           dispinterface DispHTMLHtmlElement;
    [source, default]   dispinterface HTMLElementEvents;
    [source]            dispinterface HTMLElementEvents2;
                        interface IHTMLElement;
                        interface IHTMLElement2;
                        interface IHTMLUniqueName;
                        interface IHTMLDOMNode;
};
cpp_quote("EXTERN_C const GUID CLSID_CHtmlElement;")
[
    hidden,
    uuid(3050f561-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTMLHeadElement
{
properties:
methods:
    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)] void setAttribute([in] BSTR strAttributeName,[in] VARIANT AttributeValue,[defaultvalue(1), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)] VARIANT getAttribute([in] BSTR strAttributeName,[defaultvalue(0), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)] VARIANT_BOOL removeAttribute([in] BSTR strAttributeName,[defaultvalue(1), in] LONG lFlags);
    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] void className(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] BSTR className();
    [propput, id(DISPID_IHTMLELEMENT_ID), bindable] void id(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_ID), bindable] BSTR id();
    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)] BSTR tagName();
    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)] IHTMLElement* parentElement();
    [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable] IHTMLStyle* style();
    [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] void onhelp(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] VARIANT onhelp();
    [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] void onclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] VARIANT onclick();
    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] void ondblclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] VARIANT ondblclick();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] void onkeydown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] VARIANT onkeydown();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] void onkeyup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] VARIANT onkeyup();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] void onkeypress(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] VARIANT onkeypress();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] void onmouseout(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] VARIANT onmouseout();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] void onmouseover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] VARIANT onmouseover();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] void onmousemove(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] VARIANT onmousemove();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] void onmousedown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] VARIANT onmousedown();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] void onmouseup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] VARIANT onmouseup();
    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)] IDispatch* document();
    [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] void title(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] BSTR title();
    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] void language(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] BSTR language();
    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] void onselectstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] VARIANT onselectstart();
    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)] void scrollIntoView([optional, in] VARIANT varargStart);
    [id(DISPID_IHTMLELEMENT_CONTAINS)] VARIANT_BOOL contains([in] IHTMLElement* pChild);
    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable] long sourceIndex();
    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)] VARIANT recordNumber();
    [propput, id(DISPID_IHTMLELEMENT_LANG)] void lang(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANG)] BSTR lang();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)] long offsetLeft();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)] long offsetTop();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)] long offsetWidth();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)] long offsetHeight();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)] IHTMLElement* offsetParent();
    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)] void innerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)] BSTR innerHTML();
    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)] void innerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)] BSTR innerText();
    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)] void outerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)] BSTR outerHTML();
    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)] void outerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)] BSTR outerText();
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)] void insertAdjacentHTML([in] BSTR where,[in] BSTR html);
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)] void insertAdjacentText([in] BSTR where,[in] BSTR text);
    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)] IHTMLElement* parentTextEdit();
    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)] VARIANT_BOOL isTextEdit();
    [id(DISPID_IHTMLELEMENT_CLICK)] void click();
    [propget, id(DISPID_IHTMLELEMENT_FILTERS)] IHTMLFiltersCollection* filters();
    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] void ondragstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] VARIANT ondragstart();
    [id(DISPID_IHTMLELEMENT_TOSTRING)] BSTR toString();
    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] void onbeforeupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] VARIANT onbeforeupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] void onafterupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] VARIANT onafterupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] void onerrorupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] VARIANT onerrorupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] void onrowexit(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] VARIANT onrowexit();
    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] void onrowenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] VARIANT onrowenter();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] void ondatasetchanged(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] VARIANT ondatasetchanged();
    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] void ondataavailable(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] VARIANT ondataavailable();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] void ondatasetcomplete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] VARIANT ondatasetcomplete();
    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] void onfilterchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] VARIANT onfilterchange();
    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)] IDispatch* children();
    [propget, id(DISPID_IHTMLELEMENT_ALL)] IDispatch* all();
    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)] BSTR scopeName();
    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)] void setCapture([defaultvalue(-1), in] VARIANT_BOOL containerCapture);
    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)] void releaseCapture();
    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] void onlosecapture(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] VARIANT onlosecapture();
    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)] BSTR componentFromPoint([in] long x,[in] long y);
    [id(DISPID_IHTMLELEMENT2_DOSCROLL)] void doScroll([optional, in] VARIANT component);
    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] void onscroll(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] VARIANT onscroll();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] void ondrag(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] VARIANT ondrag();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] void ondragend(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] VARIANT ondragend();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] void ondragenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] VARIANT ondragenter();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] void ondragover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] VARIANT ondragover();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] void ondragleave(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] VARIANT ondragleave();
    [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] void ondrop(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] VARIANT ondrop();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] void onbeforecut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] VARIANT onbeforecut();
    [propput, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] void oncut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] VARIANT oncut();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] void onbeforecopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] VARIANT onbeforecopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] void oncopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] VARIANT oncopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] void onbeforepaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] VARIANT onbeforepaste();
    [propput, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] void onpaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] VARIANT onpaste();
    [propget, id(DISPID_IHTMLELEMENT2_CURRENTSTYLE), nonbrowsable] IHTMLCurrentStyle* currentStyle();
    [propput, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] void onpropertychange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] VARIANT onpropertychange();
    [id(DISPID_IHTMLELEMENT2_GETCLIENTRECTS)] IHTMLRectCollection* getClientRects();
    [id(DISPID_IHTMLELEMENT2_GETBOUNDINGCLIENTRECT)] IHTMLRect* getBoundingClientRect();
    [id(DISPID_IHTMLELEMENT2_SETEXPRESSION)] void setExpression([in] BSTR propname,[in] BSTR expression,[defaultvalue(""), in] BSTR language);
    [id(DISPID_IHTMLELEMENT2_GETEXPRESSION)] VARIANT getExpression([in] BSTR propname);
    [id(DISPID_IHTMLELEMENT2_REMOVEEXPRESSION)] VARIANT_BOOL removeExpression([in] BSTR propname);
    [propput, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] void tabIndex(short v);
    [propget, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] short tabIndex();
    [id(DISPID_IHTMLELEMENT2_FOCUS)] void focus();
    [propput, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] void accessKey(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] BSTR accessKey();
    [propput, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] void onblur(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] VARIANT onblur();
    [propput, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] void onfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] VARIANT onfocus();
    [propput, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] void onresize(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] VARIANT onresize();
    [id(DISPID_IHTMLELEMENT2_BLUR)] void blur();
    [id(DISPID_IHTMLELEMENT2_ADDFILTER)] void addFilter([in] IUnknown* pUnk);
    [id(DISPID_IHTMLELEMENT2_REMOVEFILTER)] void removeFilter([in] IUnknown* pUnk);
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTHEIGHT), displaybind, bindable] long clientHeight();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTWIDTH), displaybind, bindable] long clientWidth();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTTOP), displaybind, bindable] long clientTop();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTLEFT), displaybind, bindable] long clientLeft();
    [id(DISPID_IHTMLELEMENT2_ATTACHEVENT)] VARIANT_BOOL attachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [id(DISPID_IHTMLELEMENT2_DETACHEVENT)] void detachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATE)] VARIANT readyState();
    [propput, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] void onreadystatechange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] VARIANT onreadystatechange();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] void onrowsdelete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] VARIANT onrowsdelete();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] void onrowsinserted(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] VARIANT onrowsinserted();
    [propput, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] void oncellchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] VARIANT oncellchange();
    [propput, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] void dir(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] BSTR dir();
    [id(DISPID_IHTMLELEMENT2_CREATECONTROLRANGE)] IDispatch* createControlRange();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLHEIGHT), displaybind, bindable] long scrollHeight();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLWIDTH), displaybind, bindable] long scrollWidth();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] void scrollTop(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] long scrollTop();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] void scrollLeft(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] long scrollLeft();
    [id(DISPID_IHTMLELEMENT2_CLEARATTRIBUTES)] void clearAttributes();
    [id(DISPID_IHTMLELEMENT2_MERGEATTRIBUTES)] void mergeAttributes([in] IHTMLElement* mergeThis);
    [propput, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] void oncontextmenu(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] VARIANT oncontextmenu();
    [id(DISPID_IHTMLELEMENT2_INSERTADJACENTELEMENT)] IHTMLElement* insertAdjacentElement([in] BSTR where,[in] IHTMLElement* insertedElement);
    [id(DISPID_IHTMLELEMENT2_APPLYELEMENT)] IHTMLElement* applyElement([in] IHTMLElement* apply,[in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_GETADJACENTTEXT)] BSTR getAdjacentText([in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_REPLACEADJACENTTEXT)] BSTR replaceAdjacentText([in] BSTR where,[in] BSTR newText);
    [propget, id(DISPID_IHTMLELEMENT2_CANHAVECHILDREN)] VARIANT_BOOL canHaveChildren();
    [id(DISPID_IHTMLELEMENT2_ADDBEHAVIOR)] long addBehavior([in] BSTR bstrUrl,[optional, in] VARIANT* pvarFactory);
    [id(DISPID_IHTMLELEMENT2_REMOVEBEHAVIOR)] VARIANT_BOOL removeBehavior([in] long cookie);
    [propget, id(DISPID_IHTMLELEMENT2_RUNTIMESTYLE), nonbrowsable] IHTMLStyle* runtimeStyle();
    [propget, id(DISPID_IHTMLELEMENT2_BEHAVIORURNS)] IDispatch* behaviorUrns();
    [propput, id(DISPID_IHTMLELEMENT2_TAGURN)] void tagUrn(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_TAGURN)] BSTR tagUrn();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] void onbeforeeditfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] VARIANT onbeforeeditfocus();
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATEVALUE), hidden, restricted] long readyStateValue();
    [id(DISPID_IHTMLELEMENT2_GETELEMENTSBYTAGNAME)] IHTMLElementCollection* getElementsByTagName([in] BSTR v);
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUENUMBER), hidden] long uniqueNumber();
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUEID), hidden] BSTR uniqueID();
    [propget, id(DISPID_IHTMLDOMNODE_NODETYPE)] long nodeType();
    [propget, id(DISPID_IHTMLDOMNODE_PARENTNODE)] IHTMLDOMNode* parentNode();
    [id(DISPID_IHTMLDOMNODE_HASCHILDNODES)] VARIANT_BOOL hasChildNodes();
    [propget, id(DISPID_IHTMLDOMNODE_CHILDNODES)] IDispatch* childNodes();
    [propget, id(DISPID_IHTMLDOMNODE_ATTRIBUTES)] IDispatch* attributes();
    [id(DISPID_IHTMLDOMNODE_INSERTBEFORE)] IHTMLDOMNode* insertBefore([in] IHTMLDOMNode* newChild,[optional, in] VARIANT refChild);
    [id(DISPID_IHTMLDOMNODE_REMOVECHILD)] IHTMLDOMNode* removeChild([in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_REPLACECHILD)] IHTMLDOMNode* replaceChild([in] IHTMLDOMNode* newChild,[in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_CLONENODE)] IHTMLDOMNode* cloneNode([in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_REMOVENODE)] IHTMLDOMNode* removeNode([defaultvalue(0), in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_SWAPNODE)] IHTMLDOMNode* swapNode([in] IHTMLDOMNode* otherNode);
    [id(DISPID_IHTMLDOMNODE_REPLACENODE)] IHTMLDOMNode* replaceNode([in] IHTMLDOMNode* replacement);
    [id(DISPID_IHTMLDOMNODE_APPENDCHILD)] IHTMLDOMNode* appendChild([in] IHTMLDOMNode* newChild);
    [propget, id(DISPID_IHTMLDOMNODE_NODENAME)] BSTR nodeName();
    [propput, id(DISPID_IHTMLDOMNODE_NODEVALUE)] void nodeValue(VARIANT v);
    [propget, id(DISPID_IHTMLDOMNODE_NODEVALUE)] VARIANT nodeValue();
    [propget, id(DISPID_IHTMLDOMNODE_FIRSTCHILD)] IHTMLDOMNode* firstChild();
    [propget, id(DISPID_IHTMLDOMNODE_LASTCHILD)] IHTMLDOMNode* lastChild();
    [propget, id(DISPID_IHTMLDOMNODE_PREVIOUSSIBLING)] IHTMLDOMNode* previousSibling();
    [propget, id(DISPID_IHTMLDOMNODE_NEXTSIBLING)] IHTMLDOMNode* nextSibling();
};
[
    uuid(3050f493-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLHeadElement
{
    [default]           dispinterface DispHTMLHeadElement;
    [source, default]   dispinterface HTMLElementEvents;
    [source]            dispinterface HTMLElementEvents2;
                        interface IHTMLElement;
                        interface IHTMLElement2;
                        interface IHTMLUniqueName;
                        interface IHTMLDOMNode;
};
cpp_quote("EXTERN_C const GUID CLSID_CHeadElement;")
[
    hidden,
    uuid(3050f516-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTMLTitleElement
{
properties:
methods:
    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)] void setAttribute([in] BSTR strAttributeName,[in] VARIANT AttributeValue,[defaultvalue(1), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)] VARIANT getAttribute([in] BSTR strAttributeName,[defaultvalue(0), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)] VARIANT_BOOL removeAttribute([in] BSTR strAttributeName,[defaultvalue(1), in] LONG lFlags);
    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] void className(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] BSTR className();
    [propput, id(DISPID_IHTMLELEMENT_ID), bindable] void id(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_ID), bindable] BSTR id();
    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)] BSTR tagName();
    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)] IHTMLElement* parentElement();
    [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable] IHTMLStyle* style();
    [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] void onhelp(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] VARIANT onhelp();
    [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] void onclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] VARIANT onclick();
    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] void ondblclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] VARIANT ondblclick();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] void onkeydown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] VARIANT onkeydown();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] void onkeyup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] VARIANT onkeyup();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] void onkeypress(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] VARIANT onkeypress();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] void onmouseout(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] VARIANT onmouseout();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] void onmouseover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] VARIANT onmouseover();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] void onmousemove(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] VARIANT onmousemove();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] void onmousedown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] VARIANT onmousedown();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] void onmouseup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] VARIANT onmouseup();
    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)] IDispatch* document();
    [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] void title(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] BSTR title();
    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] void language(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] BSTR language();
    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] void onselectstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] VARIANT onselectstart();
    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)] void scrollIntoView([optional, in] VARIANT varargStart);
    [id(DISPID_IHTMLELEMENT_CONTAINS)] VARIANT_BOOL contains([in] IHTMLElement* pChild);
    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable] long sourceIndex();
    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)] VARIANT recordNumber();
    [propput, id(DISPID_IHTMLELEMENT_LANG)] void lang(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANG)] BSTR lang();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)] long offsetLeft();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)] long offsetTop();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)] long offsetWidth();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)] long offsetHeight();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)] IHTMLElement* offsetParent();
    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)] void innerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)] BSTR innerHTML();
    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)] void innerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)] BSTR innerText();
    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)] void outerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)] BSTR outerHTML();
    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)] void outerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)] BSTR outerText();
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)] void insertAdjacentHTML([in] BSTR where,[in] BSTR html);
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)] void insertAdjacentText([in] BSTR where,[in] BSTR text);
    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)] IHTMLElement* parentTextEdit();
    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)] VARIANT_BOOL isTextEdit();
    [id(DISPID_IHTMLELEMENT_CLICK)] void click();
    [propget, id(DISPID_IHTMLELEMENT_FILTERS)] IHTMLFiltersCollection* filters();
    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] void ondragstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] VARIANT ondragstart();
    [id(DISPID_IHTMLELEMENT_TOSTRING)] BSTR toString();
    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] void onbeforeupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] VARIANT onbeforeupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] void onafterupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] VARIANT onafterupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] void onerrorupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] VARIANT onerrorupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] void onrowexit(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] VARIANT onrowexit();
    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] void onrowenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] VARIANT onrowenter();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] void ondatasetchanged(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] VARIANT ondatasetchanged();
    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] void ondataavailable(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] VARIANT ondataavailable();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] void ondatasetcomplete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] VARIANT ondatasetcomplete();
    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] void onfilterchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] VARIANT onfilterchange();
    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)] IDispatch* children();
    [propget, id(DISPID_IHTMLELEMENT_ALL)] IDispatch* all();
    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)] BSTR scopeName();
    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)] void setCapture([defaultvalue(-1), in] VARIANT_BOOL containerCapture);
    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)] void releaseCapture();
    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] void onlosecapture(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] VARIANT onlosecapture();
    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)] BSTR componentFromPoint([in] long x,[in] long y);
    [id(DISPID_IHTMLELEMENT2_DOSCROLL)] void doScroll([optional, in] VARIANT component);
    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] void onscroll(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] VARIANT onscroll();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] void ondrag(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] VARIANT ondrag();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] void ondragend(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] VARIANT ondragend();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] void ondragenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] VARIANT ondragenter();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] void ondragover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] VARIANT ondragover();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] void ondragleave(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] VARIANT ondragleave();
    [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] void ondrop(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] VARIANT ondrop();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] void onbeforecut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] VARIANT onbeforecut();
    [propput, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] void oncut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] VARIANT oncut();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] void onbeforecopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] VARIANT onbeforecopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] void oncopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] VARIANT oncopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] void onbeforepaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] VARIANT onbeforepaste();
    [propput, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] void onpaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] VARIANT onpaste();
    [propget, id(DISPID_IHTMLELEMENT2_CURRENTSTYLE), nonbrowsable] IHTMLCurrentStyle* currentStyle();
    [propput, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] void onpropertychange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] VARIANT onpropertychange();
    [id(DISPID_IHTMLELEMENT2_GETCLIENTRECTS)] IHTMLRectCollection* getClientRects();
    [id(DISPID_IHTMLELEMENT2_GETBOUNDINGCLIENTRECT)] IHTMLRect* getBoundingClientRect();
    [id(DISPID_IHTMLELEMENT2_SETEXPRESSION)] void setExpression([in] BSTR propname,[in] BSTR expression,[defaultvalue(""), in] BSTR language);
    [id(DISPID_IHTMLELEMENT2_GETEXPRESSION)] VARIANT getExpression([in] BSTR propname);
    [id(DISPID_IHTMLELEMENT2_REMOVEEXPRESSION)] VARIANT_BOOL removeExpression([in] BSTR propname);
    [propput, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] void tabIndex(short v);
    [propget, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] short tabIndex();
    [id(DISPID_IHTMLELEMENT2_FOCUS)] void focus();
    [propput, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] void accessKey(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] BSTR accessKey();
    [propput, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] void onblur(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] VARIANT onblur();
    [propput, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] void onfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] VARIANT onfocus();
    [propput, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] void onresize(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] VARIANT onresize();
    [id(DISPID_IHTMLELEMENT2_BLUR)] void blur();
    [id(DISPID_IHTMLELEMENT2_ADDFILTER)] void addFilter([in] IUnknown* pUnk);
    [id(DISPID_IHTMLELEMENT2_REMOVEFILTER)] void removeFilter([in] IUnknown* pUnk);
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTHEIGHT), displaybind, bindable] long clientHeight();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTWIDTH), displaybind, bindable] long clientWidth();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTTOP), displaybind, bindable] long clientTop();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTLEFT), displaybind, bindable] long clientLeft();
    [id(DISPID_IHTMLELEMENT2_ATTACHEVENT)] VARIANT_BOOL attachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [id(DISPID_IHTMLELEMENT2_DETACHEVENT)] void detachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATE)] VARIANT readyState();
    [propput, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] void onreadystatechange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] VARIANT onreadystatechange();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] void onrowsdelete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] VARIANT onrowsdelete();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] void onrowsinserted(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] VARIANT onrowsinserted();
    [propput, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] void oncellchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] VARIANT oncellchange();
    [propput, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] void dir(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] BSTR dir();
    [id(DISPID_IHTMLELEMENT2_CREATECONTROLRANGE)] IDispatch* createControlRange();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLHEIGHT), displaybind, bindable] long scrollHeight();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLWIDTH), displaybind, bindable] long scrollWidth();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] void scrollTop(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] long scrollTop();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] void scrollLeft(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] long scrollLeft();
    [id(DISPID_IHTMLELEMENT2_CLEARATTRIBUTES)] void clearAttributes();
    [id(DISPID_IHTMLELEMENT2_MERGEATTRIBUTES)] void mergeAttributes([in] IHTMLElement* mergeThis);
    [propput, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] void oncontextmenu(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] VARIANT oncontextmenu();
    [id(DISPID_IHTMLELEMENT2_INSERTADJACENTELEMENT)] IHTMLElement* insertAdjacentElement([in] BSTR where,[in] IHTMLElement* insertedElement);
    [id(DISPID_IHTMLELEMENT2_APPLYELEMENT)] IHTMLElement* applyElement([in] IHTMLElement* apply,[in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_GETADJACENTTEXT)] BSTR getAdjacentText([in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_REPLACEADJACENTTEXT)] BSTR replaceAdjacentText([in] BSTR where,[in] BSTR newText);
    [propget, id(DISPID_IHTMLELEMENT2_CANHAVECHILDREN)] VARIANT_BOOL canHaveChildren();
    [id(DISPID_IHTMLELEMENT2_ADDBEHAVIOR)] long addBehavior([in] BSTR bstrUrl,[optional, in] VARIANT* pvarFactory);
    [id(DISPID_IHTMLELEMENT2_REMOVEBEHAVIOR)] VARIANT_BOOL removeBehavior([in] long cookie);
    [propget, id(DISPID_IHTMLELEMENT2_RUNTIMESTYLE), nonbrowsable] IHTMLStyle* runtimeStyle();
    [propget, id(DISPID_IHTMLELEMENT2_BEHAVIORURNS)] IDispatch* behaviorUrns();
    [propput, id(DISPID_IHTMLELEMENT2_TAGURN)] void tagUrn(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_TAGURN)] BSTR tagUrn();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] void onbeforeeditfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] VARIANT onbeforeeditfocus();
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATEVALUE), hidden, restricted] long readyStateValue();
    [id(DISPID_IHTMLELEMENT2_GETELEMENTSBYTAGNAME)] IHTMLElementCollection* getElementsByTagName([in] BSTR v);
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUENUMBER), hidden] long uniqueNumber();
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUEID), hidden] BSTR uniqueID();
    [propget, id(DISPID_IHTMLDOMNODE_NODETYPE)] long nodeType();
    [propget, id(DISPID_IHTMLDOMNODE_PARENTNODE)] IHTMLDOMNode* parentNode();
    [id(DISPID_IHTMLDOMNODE_HASCHILDNODES)] VARIANT_BOOL hasChildNodes();
    [propget, id(DISPID_IHTMLDOMNODE_CHILDNODES)] IDispatch* childNodes();
    [propget, id(DISPID_IHTMLDOMNODE_ATTRIBUTES)] IDispatch* attributes();
    [id(DISPID_IHTMLDOMNODE_INSERTBEFORE)] IHTMLDOMNode* insertBefore([in] IHTMLDOMNode* newChild,[optional, in] VARIANT refChild);
    [id(DISPID_IHTMLDOMNODE_REMOVECHILD)] IHTMLDOMNode* removeChild([in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_REPLACECHILD)] IHTMLDOMNode* replaceChild([in] IHTMLDOMNode* newChild,[in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_CLONENODE)] IHTMLDOMNode* cloneNode([in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_REMOVENODE)] IHTMLDOMNode* removeNode([defaultvalue(0), in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_SWAPNODE)] IHTMLDOMNode* swapNode([in] IHTMLDOMNode* otherNode);
    [id(DISPID_IHTMLDOMNODE_REPLACENODE)] IHTMLDOMNode* replaceNode([in] IHTMLDOMNode* replacement);
    [id(DISPID_IHTMLDOMNODE_APPENDCHILD)] IHTMLDOMNode* appendChild([in] IHTMLDOMNode* newChild);
    [propget, id(DISPID_IHTMLDOMNODE_NODENAME)] BSTR nodeName();
    [propput, id(DISPID_IHTMLDOMNODE_NODEVALUE)] void nodeValue(VARIANT v);
    [propget, id(DISPID_IHTMLDOMNODE_NODEVALUE)] VARIANT nodeValue();
    [propget, id(DISPID_IHTMLDOMNODE_FIRSTCHILD)] IHTMLDOMNode* firstChild();
    [propget, id(DISPID_IHTMLDOMNODE_LASTCHILD)] IHTMLDOMNode* lastChild();
    [propget, id(DISPID_IHTMLDOMNODE_PREVIOUSSIBLING)] IHTMLDOMNode* previousSibling();
    [propget, id(DISPID_IHTMLDOMNODE_NEXTSIBLING)] IHTMLDOMNode* nextSibling();
    [propput, id(DISPID_IHTMLTITLEELEMENT_TEXT), bindable] void text(BSTR v);
    [propget, id(DISPID_IHTMLTITLEELEMENT_TEXT), bindable] BSTR text();
};
[
    uuid(3050f284-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLTitleElement
{
    [default]           dispinterface DispHTMLTitleElement;
    [source, default]   dispinterface HTMLElementEvents;
    [source]            dispinterface HTMLElementEvents2;
                        interface IHTMLElement;
                        interface IHTMLElement2;
                        interface IHTMLUniqueName;
                        interface IHTMLDOMNode;
                        interface IHTMLTitleElement;
};
cpp_quote("EXTERN_C const GUID CLSID_CTitleElement;")
[
    hidden,
    uuid(3050f517-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTMLMetaElement
{
properties:
methods:
    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)] void setAttribute([in] BSTR strAttributeName,[in] VARIANT AttributeValue,[defaultvalue(1), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)] VARIANT getAttribute([in] BSTR strAttributeName,[defaultvalue(0), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)] VARIANT_BOOL removeAttribute([in] BSTR strAttributeName,[defaultvalue(1), in] LONG lFlags);
    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] void className(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] BSTR className();
    [propput, id(DISPID_IHTMLELEMENT_ID), bindable] void id(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_ID), bindable] BSTR id();
    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)] BSTR tagName();
    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)] IHTMLElement* parentElement();
    [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable] IHTMLStyle* style();
    [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] void onhelp(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] VARIANT onhelp();
    [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] void onclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] VARIANT onclick();
    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] void ondblclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] VARIANT ondblclick();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] void onkeydown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] VARIANT onkeydown();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] void onkeyup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] VARIANT onkeyup();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] void onkeypress(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] VARIANT onkeypress();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] void onmouseout(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] VARIANT onmouseout();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] void onmouseover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] VARIANT onmouseover();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] void onmousemove(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] VARIANT onmousemove();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] void onmousedown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] VARIANT onmousedown();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] void onmouseup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] VARIANT onmouseup();
    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)] IDispatch* document();
    [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] void title(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] BSTR title();
    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] void language(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] BSTR language();
    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] void onselectstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] VARIANT onselectstart();
    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)] void scrollIntoView([optional, in] VARIANT varargStart);
    [id(DISPID_IHTMLELEMENT_CONTAINS)] VARIANT_BOOL contains([in] IHTMLElement* pChild);
    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable] long sourceIndex();
    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)] VARIANT recordNumber();
    [propput, id(DISPID_IHTMLELEMENT_LANG)] void lang(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANG)] BSTR lang();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)] long offsetLeft();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)] long offsetTop();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)] long offsetWidth();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)] long offsetHeight();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)] IHTMLElement* offsetParent();
    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)] void innerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)] BSTR innerHTML();
    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)] void innerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)] BSTR innerText();
    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)] void outerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)] BSTR outerHTML();
    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)] void outerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)] BSTR outerText();
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)] void insertAdjacentHTML([in] BSTR where,[in] BSTR html);
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)] void insertAdjacentText([in] BSTR where,[in] BSTR text);
    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)] IHTMLElement* parentTextEdit();
    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)] VARIANT_BOOL isTextEdit();
    [id(DISPID_IHTMLELEMENT_CLICK)] void click();
    [propget, id(DISPID_IHTMLELEMENT_FILTERS)] IHTMLFiltersCollection* filters();
    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] void ondragstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] VARIANT ondragstart();
    [id(DISPID_IHTMLELEMENT_TOSTRING)] BSTR toString();
    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] void onbeforeupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] VARIANT onbeforeupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] void onafterupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] VARIANT onafterupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] void onerrorupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] VARIANT onerrorupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] void onrowexit(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] VARIANT onrowexit();
    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] void onrowenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] VARIANT onrowenter();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] void ondatasetchanged(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] VARIANT ondatasetchanged();
    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] void ondataavailable(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] VARIANT ondataavailable();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] void ondatasetcomplete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] VARIANT ondatasetcomplete();
    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] void onfilterchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] VARIANT onfilterchange();
    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)] IDispatch* children();
    [propget, id(DISPID_IHTMLELEMENT_ALL)] IDispatch* all();
    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)] BSTR scopeName();
    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)] void setCapture([defaultvalue(-1), in] VARIANT_BOOL containerCapture);
    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)] void releaseCapture();
    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] void onlosecapture(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] VARIANT onlosecapture();
    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)] BSTR componentFromPoint([in] long x,[in] long y);
    [id(DISPID_IHTMLELEMENT2_DOSCROLL)] void doScroll([optional, in] VARIANT component);
    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] void onscroll(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] VARIANT onscroll();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] void ondrag(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] VARIANT ondrag();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] void ondragend(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] VARIANT ondragend();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] void ondragenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] VARIANT ondragenter();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] void ondragover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] VARIANT ondragover();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] void ondragleave(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] VARIANT ondragleave();
    [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] void ondrop(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] VARIANT ondrop();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] void onbeforecut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] VARIANT onbeforecut();
    [propput, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] void oncut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] VARIANT oncut();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] void onbeforecopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] VARIANT onbeforecopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] void oncopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] VARIANT oncopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] void onbeforepaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] VARIANT onbeforepaste();
    [propput, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] void onpaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] VARIANT onpaste();
    [propget, id(DISPID_IHTMLELEMENT2_CURRENTSTYLE), nonbrowsable] IHTMLCurrentStyle* currentStyle();
    [propput, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] void onpropertychange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] VARIANT onpropertychange();
    [id(DISPID_IHTMLELEMENT2_GETCLIENTRECTS)] IHTMLRectCollection* getClientRects();
    [id(DISPID_IHTMLELEMENT2_GETBOUNDINGCLIENTRECT)] IHTMLRect* getBoundingClientRect();
    [id(DISPID_IHTMLELEMENT2_SETEXPRESSION)] void setExpression([in] BSTR propname,[in] BSTR expression,[defaultvalue(""), in] BSTR language);
    [id(DISPID_IHTMLELEMENT2_GETEXPRESSION)] VARIANT getExpression([in] BSTR propname);
    [id(DISPID_IHTMLELEMENT2_REMOVEEXPRESSION)] VARIANT_BOOL removeExpression([in] BSTR propname);
    [propput, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] void tabIndex(short v);
    [propget, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] short tabIndex();
    [id(DISPID_IHTMLELEMENT2_FOCUS)] void focus();
    [propput, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] void accessKey(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] BSTR accessKey();
    [propput, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] void onblur(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] VARIANT onblur();
    [propput, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] void onfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] VARIANT onfocus();
    [propput, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] void onresize(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] VARIANT onresize();
    [id(DISPID_IHTMLELEMENT2_BLUR)] void blur();
    [id(DISPID_IHTMLELEMENT2_ADDFILTER)] void addFilter([in] IUnknown* pUnk);
    [id(DISPID_IHTMLELEMENT2_REMOVEFILTER)] void removeFilter([in] IUnknown* pUnk);
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTHEIGHT), displaybind, bindable] long clientHeight();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTWIDTH), displaybind, bindable] long clientWidth();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTTOP), displaybind, bindable] long clientTop();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTLEFT), displaybind, bindable] long clientLeft();
    [id(DISPID_IHTMLELEMENT2_ATTACHEVENT)] VARIANT_BOOL attachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [id(DISPID_IHTMLELEMENT2_DETACHEVENT)] void detachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATE)] VARIANT readyState();
    [propput, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] void onreadystatechange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] VARIANT onreadystatechange();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] void onrowsdelete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] VARIANT onrowsdelete();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] void onrowsinserted(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] VARIANT onrowsinserted();
    [propput, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] void oncellchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] VARIANT oncellchange();
    [propput, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] void dir(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] BSTR dir();
    [id(DISPID_IHTMLELEMENT2_CREATECONTROLRANGE)] IDispatch* createControlRange();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLHEIGHT), displaybind, bindable] long scrollHeight();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLWIDTH), displaybind, bindable] long scrollWidth();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] void scrollTop(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] long scrollTop();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] void scrollLeft(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] long scrollLeft();
    [id(DISPID_IHTMLELEMENT2_CLEARATTRIBUTES)] void clearAttributes();
    [id(DISPID_IHTMLELEMENT2_MERGEATTRIBUTES)] void mergeAttributes([in] IHTMLElement* mergeThis);
    [propput, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] void oncontextmenu(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] VARIANT oncontextmenu();
    [id(DISPID_IHTMLELEMENT2_INSERTADJACENTELEMENT)] IHTMLElement* insertAdjacentElement([in] BSTR where,[in] IHTMLElement* insertedElement);
    [id(DISPID_IHTMLELEMENT2_APPLYELEMENT)] IHTMLElement* applyElement([in] IHTMLElement* apply,[in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_GETADJACENTTEXT)] BSTR getAdjacentText([in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_REPLACEADJACENTTEXT)] BSTR replaceAdjacentText([in] BSTR where,[in] BSTR newText);
    [propget, id(DISPID_IHTMLELEMENT2_CANHAVECHILDREN)] VARIANT_BOOL canHaveChildren();
    [id(DISPID_IHTMLELEMENT2_ADDBEHAVIOR)] long addBehavior([in] BSTR bstrUrl,[optional, in] VARIANT* pvarFactory);
    [id(DISPID_IHTMLELEMENT2_REMOVEBEHAVIOR)] VARIANT_BOOL removeBehavior([in] long cookie);
    [propget, id(DISPID_IHTMLELEMENT2_RUNTIMESTYLE), nonbrowsable] IHTMLStyle* runtimeStyle();
    [propget, id(DISPID_IHTMLELEMENT2_BEHAVIORURNS)] IDispatch* behaviorUrns();
    [propput, id(DISPID_IHTMLELEMENT2_TAGURN)] void tagUrn(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_TAGURN)] BSTR tagUrn();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] void onbeforeeditfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] VARIANT onbeforeeditfocus();
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATEVALUE), hidden, restricted] long readyStateValue();
    [id(DISPID_IHTMLELEMENT2_GETELEMENTSBYTAGNAME)] IHTMLElementCollection* getElementsByTagName([in] BSTR v);
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUENUMBER), hidden] long uniqueNumber();
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUEID), hidden] BSTR uniqueID();
    [propget, id(DISPID_IHTMLDOMNODE_NODETYPE)] long nodeType();
    [propget, id(DISPID_IHTMLDOMNODE_PARENTNODE)] IHTMLDOMNode* parentNode();
    [id(DISPID_IHTMLDOMNODE_HASCHILDNODES)] VARIANT_BOOL hasChildNodes();
    [propget, id(DISPID_IHTMLDOMNODE_CHILDNODES)] IDispatch* childNodes();
    [propget, id(DISPID_IHTMLDOMNODE_ATTRIBUTES)] IDispatch* attributes();
    [id(DISPID_IHTMLDOMNODE_INSERTBEFORE)] IHTMLDOMNode* insertBefore([in] IHTMLDOMNode* newChild,[optional, in] VARIANT refChild);
    [id(DISPID_IHTMLDOMNODE_REMOVECHILD)] IHTMLDOMNode* removeChild([in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_REPLACECHILD)] IHTMLDOMNode* replaceChild([in] IHTMLDOMNode* newChild,[in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_CLONENODE)] IHTMLDOMNode* cloneNode([in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_REMOVENODE)] IHTMLDOMNode* removeNode([defaultvalue(0), in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_SWAPNODE)] IHTMLDOMNode* swapNode([in] IHTMLDOMNode* otherNode);
    [id(DISPID_IHTMLDOMNODE_REPLACENODE)] IHTMLDOMNode* replaceNode([in] IHTMLDOMNode* replacement);
    [id(DISPID_IHTMLDOMNODE_APPENDCHILD)] IHTMLDOMNode* appendChild([in] IHTMLDOMNode* newChild);
    [propget, id(DISPID_IHTMLDOMNODE_NODENAME)] BSTR nodeName();
    [propput, id(DISPID_IHTMLDOMNODE_NODEVALUE)] void nodeValue(VARIANT v);
    [propget, id(DISPID_IHTMLDOMNODE_NODEVALUE)] VARIANT nodeValue();
    [propget, id(DISPID_IHTMLDOMNODE_FIRSTCHILD)] IHTMLDOMNode* firstChild();
    [propget, id(DISPID_IHTMLDOMNODE_LASTCHILD)] IHTMLDOMNode* lastChild();
    [propget, id(DISPID_IHTMLDOMNODE_PREVIOUSSIBLING)] IHTMLDOMNode* previousSibling();
    [propget, id(DISPID_IHTMLDOMNODE_NEXTSIBLING)] IHTMLDOMNode* nextSibling();
    [propput, id(DISPID_IHTMLMETAELEMENT_HTTPEQUIV), displaybind, bindable] void httpEquiv(BSTR v);
    [propget, id(DISPID_IHTMLMETAELEMENT_HTTPEQUIV), displaybind, bindable] BSTR httpEquiv();
    [propput, id(DISPID_IHTMLMETAELEMENT_CONTENT), displaybind, bindable] void content(BSTR v);
    [propget, id(DISPID_IHTMLMETAELEMENT_CONTENT), displaybind, bindable] BSTR content();
    [propput, id(DISPID_IHTMLMETAELEMENT_NAME), displaybind, bindable] void name(BSTR v);
    [propget, id(DISPID_IHTMLMETAELEMENT_NAME), displaybind, bindable] BSTR name();
    [propput, id(DISPID_IHTMLMETAELEMENT_URL), displaybind, bindable] void url(BSTR v);
    [propget, id(DISPID_IHTMLMETAELEMENT_URL), displaybind, bindable] BSTR url();
    [propput, id(DISPID_IHTMLMETAELEMENT_CHARSET), displaybind, bindable] void charset(BSTR v);
    [propget, id(DISPID_IHTMLMETAELEMENT_CHARSET), displaybind, bindable] BSTR charset();
};
[
    uuid(3050f275-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLMetaElement
{
    [default]           dispinterface DispHTMLMetaElement;
    [source, default]   dispinterface HTMLElementEvents;
    [source]            dispinterface HTMLElementEvents2;
                        interface IHTMLElement;
                        interface IHTMLElement2;
                        interface IHTMLUniqueName;
                        interface IHTMLDOMNode;
                        interface IHTMLMetaElement;
};
cpp_quote("EXTERN_C const GUID CLSID_CMetaElement;")
[
    hidden,
    uuid(3050f518-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTMLBaseElement
{
properties:
methods:
    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)] void setAttribute([in] BSTR strAttributeName,[in] VARIANT AttributeValue,[defaultvalue(1), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)] VARIANT getAttribute([in] BSTR strAttributeName,[defaultvalue(0), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)] VARIANT_BOOL removeAttribute([in] BSTR strAttributeName,[defaultvalue(1), in] LONG lFlags);
    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] void className(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] BSTR className();
    [propput, id(DISPID_IHTMLELEMENT_ID), bindable] void id(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_ID), bindable] BSTR id();
    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)] BSTR tagName();
    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)] IHTMLElement* parentElement();
    [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable] IHTMLStyle* style();
    [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] void onhelp(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] VARIANT onhelp();
    [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] void onclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] VARIANT onclick();
    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] void ondblclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] VARIANT ondblclick();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] void onkeydown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] VARIANT onkeydown();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] void onkeyup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] VARIANT onkeyup();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] void onkeypress(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] VARIANT onkeypress();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] void onmouseout(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] VARIANT onmouseout();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] void onmouseover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] VARIANT onmouseover();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] void onmousemove(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] VARIANT onmousemove();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] void onmousedown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] VARIANT onmousedown();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] void onmouseup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] VARIANT onmouseup();
    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)] IDispatch* document();
    [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] void title(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] BSTR title();
    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] void language(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] BSTR language();
    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] void onselectstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] VARIANT onselectstart();
    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)] void scrollIntoView([optional, in] VARIANT varargStart);
    [id(DISPID_IHTMLELEMENT_CONTAINS)] VARIANT_BOOL contains([in] IHTMLElement* pChild);
    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable] long sourceIndex();
    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)] VARIANT recordNumber();
    [propput, id(DISPID_IHTMLELEMENT_LANG)] void lang(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANG)] BSTR lang();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)] long offsetLeft();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)] long offsetTop();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)] long offsetWidth();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)] long offsetHeight();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)] IHTMLElement* offsetParent();
    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)] void innerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)] BSTR innerHTML();
    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)] void innerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)] BSTR innerText();
    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)] void outerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)] BSTR outerHTML();
    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)] void outerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)] BSTR outerText();
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)] void insertAdjacentHTML([in] BSTR where,[in] BSTR html);
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)] void insertAdjacentText([in] BSTR where,[in] BSTR text);
    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)] IHTMLElement* parentTextEdit();
    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)] VARIANT_BOOL isTextEdit();
    [id(DISPID_IHTMLELEMENT_CLICK)] void click();
    [propget, id(DISPID_IHTMLELEMENT_FILTERS)] IHTMLFiltersCollection* filters();
    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] void ondragstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] VARIANT ondragstart();
    [id(DISPID_IHTMLELEMENT_TOSTRING)] BSTR toString();
    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] void onbeforeupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] VARIANT onbeforeupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] void onafterupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] VARIANT onafterupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] void onerrorupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] VARIANT onerrorupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] void onrowexit(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] VARIANT onrowexit();
    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] void onrowenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] VARIANT onrowenter();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] void ondatasetchanged(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] VARIANT ondatasetchanged();
    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] void ondataavailable(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] VARIANT ondataavailable();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] void ondatasetcomplete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] VARIANT ondatasetcomplete();
    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] void onfilterchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] VARIANT onfilterchange();
    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)] IDispatch* children();
    [propget, id(DISPID_IHTMLELEMENT_ALL)] IDispatch* all();
    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)] BSTR scopeName();
    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)] void setCapture([defaultvalue(-1), in] VARIANT_BOOL containerCapture);
    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)] void releaseCapture();
    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] void onlosecapture(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] VARIANT onlosecapture();
    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)] BSTR componentFromPoint([in] long x,[in] long y);
    [id(DISPID_IHTMLELEMENT2_DOSCROLL)] void doScroll([optional, in] VARIANT component);
    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] void onscroll(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] VARIANT onscroll();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] void ondrag(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] VARIANT ondrag();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] void ondragend(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] VARIANT ondragend();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] void ondragenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] VARIANT ondragenter();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] void ondragover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] VARIANT ondragover();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] void ondragleave(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] VARIANT ondragleave();
    [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] void ondrop(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] VARIANT ondrop();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] void onbeforecut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] VARIANT onbeforecut();
    [propput, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] void oncut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] VARIANT oncut();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] void onbeforecopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] VARIANT onbeforecopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] void oncopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] VARIANT oncopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] void onbeforepaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] VARIANT onbeforepaste();
    [propput, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] void onpaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] VARIANT onpaste();
    [propget, id(DISPID_IHTMLELEMENT2_CURRENTSTYLE), nonbrowsable] IHTMLCurrentStyle* currentStyle();
    [propput, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] void onpropertychange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] VARIANT onpropertychange();
    [id(DISPID_IHTMLELEMENT2_GETCLIENTRECTS)] IHTMLRectCollection* getClientRects();
    [id(DISPID_IHTMLELEMENT2_GETBOUNDINGCLIENTRECT)] IHTMLRect* getBoundingClientRect();
    [id(DISPID_IHTMLELEMENT2_SETEXPRESSION)] void setExpression([in] BSTR propname,[in] BSTR expression,[defaultvalue(""), in] BSTR language);
    [id(DISPID_IHTMLELEMENT2_GETEXPRESSION)] VARIANT getExpression([in] BSTR propname);
    [id(DISPID_IHTMLELEMENT2_REMOVEEXPRESSION)] VARIANT_BOOL removeExpression([in] BSTR propname);
    [propput, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] void tabIndex(short v);
    [propget, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] short tabIndex();
    [id(DISPID_IHTMLELEMENT2_FOCUS)] void focus();
    [propput, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] void accessKey(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] BSTR accessKey();
    [propput, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] void onblur(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] VARIANT onblur();
    [propput, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] void onfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] VARIANT onfocus();
    [propput, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] void onresize(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] VARIANT onresize();
    [id(DISPID_IHTMLELEMENT2_BLUR)] void blur();
    [id(DISPID_IHTMLELEMENT2_ADDFILTER)] void addFilter([in] IUnknown* pUnk);
    [id(DISPID_IHTMLELEMENT2_REMOVEFILTER)] void removeFilter([in] IUnknown* pUnk);
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTHEIGHT), displaybind, bindable] long clientHeight();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTWIDTH), displaybind, bindable] long clientWidth();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTTOP), displaybind, bindable] long clientTop();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTLEFT), displaybind, bindable] long clientLeft();
    [id(DISPID_IHTMLELEMENT2_ATTACHEVENT)] VARIANT_BOOL attachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [id(DISPID_IHTMLELEMENT2_DETACHEVENT)] void detachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATE)] VARIANT readyState();
    [propput, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] void onreadystatechange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] VARIANT onreadystatechange();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] void onrowsdelete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] VARIANT onrowsdelete();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] void onrowsinserted(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] VARIANT onrowsinserted();
    [propput, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] void oncellchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] VARIANT oncellchange();
    [propput, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] void dir(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] BSTR dir();
    [id(DISPID_IHTMLELEMENT2_CREATECONTROLRANGE)] IDispatch* createControlRange();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLHEIGHT), displaybind, bindable] long scrollHeight();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLWIDTH), displaybind, bindable] long scrollWidth();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] void scrollTop(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] long scrollTop();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] void scrollLeft(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] long scrollLeft();
    [id(DISPID_IHTMLELEMENT2_CLEARATTRIBUTES)] void clearAttributes();
    [id(DISPID_IHTMLELEMENT2_MERGEATTRIBUTES)] void mergeAttributes([in] IHTMLElement* mergeThis);
    [propput, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] void oncontextmenu(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] VARIANT oncontextmenu();
    [id(DISPID_IHTMLELEMENT2_INSERTADJACENTELEMENT)] IHTMLElement* insertAdjacentElement([in] BSTR where,[in] IHTMLElement* insertedElement);
    [id(DISPID_IHTMLELEMENT2_APPLYELEMENT)] IHTMLElement* applyElement([in] IHTMLElement* apply,[in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_GETADJACENTTEXT)] BSTR getAdjacentText([in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_REPLACEADJACENTTEXT)] BSTR replaceAdjacentText([in] BSTR where,[in] BSTR newText);
    [propget, id(DISPID_IHTMLELEMENT2_CANHAVECHILDREN)] VARIANT_BOOL canHaveChildren();
    [id(DISPID_IHTMLELEMENT2_ADDBEHAVIOR)] long addBehavior([in] BSTR bstrUrl,[optional, in] VARIANT* pvarFactory);
    [id(DISPID_IHTMLELEMENT2_REMOVEBEHAVIOR)] VARIANT_BOOL removeBehavior([in] long cookie);
    [propget, id(DISPID_IHTMLELEMENT2_RUNTIMESTYLE), nonbrowsable] IHTMLStyle* runtimeStyle();
    [propget, id(DISPID_IHTMLELEMENT2_BEHAVIORURNS)] IDispatch* behaviorUrns();
    [propput, id(DISPID_IHTMLELEMENT2_TAGURN)] void tagUrn(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_TAGURN)] BSTR tagUrn();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] void onbeforeeditfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] VARIANT onbeforeeditfocus();
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATEVALUE), hidden, restricted] long readyStateValue();
    [id(DISPID_IHTMLELEMENT2_GETELEMENTSBYTAGNAME)] IHTMLElementCollection* getElementsByTagName([in] BSTR v);
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUENUMBER), hidden] long uniqueNumber();
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUEID), hidden] BSTR uniqueID();
    [propget, id(DISPID_IHTMLDOMNODE_NODETYPE)] long nodeType();
    [propget, id(DISPID_IHTMLDOMNODE_PARENTNODE)] IHTMLDOMNode* parentNode();
    [id(DISPID_IHTMLDOMNODE_HASCHILDNODES)] VARIANT_BOOL hasChildNodes();
    [propget, id(DISPID_IHTMLDOMNODE_CHILDNODES)] IDispatch* childNodes();
    [propget, id(DISPID_IHTMLDOMNODE_ATTRIBUTES)] IDispatch* attributes();
    [id(DISPID_IHTMLDOMNODE_INSERTBEFORE)] IHTMLDOMNode* insertBefore([in] IHTMLDOMNode* newChild,[optional, in] VARIANT refChild);
    [id(DISPID_IHTMLDOMNODE_REMOVECHILD)] IHTMLDOMNode* removeChild([in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_REPLACECHILD)] IHTMLDOMNode* replaceChild([in] IHTMLDOMNode* newChild,[in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_CLONENODE)] IHTMLDOMNode* cloneNode([in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_REMOVENODE)] IHTMLDOMNode* removeNode([defaultvalue(0), in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_SWAPNODE)] IHTMLDOMNode* swapNode([in] IHTMLDOMNode* otherNode);
    [id(DISPID_IHTMLDOMNODE_REPLACENODE)] IHTMLDOMNode* replaceNode([in] IHTMLDOMNode* replacement);
    [id(DISPID_IHTMLDOMNODE_APPENDCHILD)] IHTMLDOMNode* appendChild([in] IHTMLDOMNode* newChild);
    [propget, id(DISPID_IHTMLDOMNODE_NODENAME)] BSTR nodeName();
    [propput, id(DISPID_IHTMLDOMNODE_NODEVALUE)] void nodeValue(VARIANT v);
    [propget, id(DISPID_IHTMLDOMNODE_NODEVALUE)] VARIANT nodeValue();
    [propget, id(DISPID_IHTMLDOMNODE_FIRSTCHILD)] IHTMLDOMNode* firstChild();
    [propget, id(DISPID_IHTMLDOMNODE_LASTCHILD)] IHTMLDOMNode* lastChild();
    [propget, id(DISPID_IHTMLDOMNODE_PREVIOUSSIBLING)] IHTMLDOMNode* previousSibling();
    [propget, id(DISPID_IHTMLDOMNODE_NEXTSIBLING)] IHTMLDOMNode* nextSibling();
    [propput, id(DISPID_IHTMLBASEELEMENT_HREF), displaybind, bindable] void href(BSTR v);
    [propget, id(DISPID_IHTMLBASEELEMENT_HREF), displaybind, bindable] BSTR href();
    [propput, id(DISPID_IHTMLBASEELEMENT_TARGET), displaybind, bindable] void target(BSTR v);
    [propget, id(DISPID_IHTMLBASEELEMENT_TARGET), displaybind, bindable] BSTR target();
};
[
    uuid(3050f276-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLBaseElement
{
    [default]           dispinterface DispHTMLBaseElement;
    [source, default]   dispinterface HTMLElementEvents;
    [source]            dispinterface HTMLElementEvents2;
                        interface IHTMLElement;
                        interface IHTMLElement2;
                        interface IHTMLUniqueName;
                        interface IHTMLDOMNode;
                        interface IHTMLBaseElement;
};
cpp_quote("EXTERN_C const GUID CLSID_CBaseElement;")
[
    hidden,
    uuid(3050f519-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTMLIsIndexElement
{
properties:
methods:
    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)] void setAttribute([in] BSTR strAttributeName,[in] VARIANT AttributeValue,[defaultvalue(1), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)] VARIANT getAttribute([in] BSTR strAttributeName,[defaultvalue(0), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)] VARIANT_BOOL removeAttribute([in] BSTR strAttributeName,[defaultvalue(1), in] LONG lFlags);
    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] void className(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] BSTR className();
    [propput, id(DISPID_IHTMLELEMENT_ID), bindable] void id(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_ID), bindable] BSTR id();
    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)] BSTR tagName();
    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)] IHTMLElement* parentElement();
    [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable] IHTMLStyle* style();
    [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] void onhelp(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] VARIANT onhelp();
    [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] void onclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] VARIANT onclick();
    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] void ondblclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] VARIANT ondblclick();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] void onkeydown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] VARIANT onkeydown();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] void onkeyup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] VARIANT onkeyup();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] void onkeypress(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] VARIANT onkeypress();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] void onmouseout(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] VARIANT onmouseout();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] void onmouseover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] VARIANT onmouseover();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] void onmousemove(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] VARIANT onmousemove();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] void onmousedown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] VARIANT onmousedown();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] void onmouseup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] VARIANT onmouseup();
    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)] IDispatch* document();
    [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] void title(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] BSTR title();
    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] void language(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] BSTR language();
    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] void onselectstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] VARIANT onselectstart();
    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)] void scrollIntoView([optional, in] VARIANT varargStart);
    [id(DISPID_IHTMLELEMENT_CONTAINS)] VARIANT_BOOL contains([in] IHTMLElement* pChild);
    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable] long sourceIndex();
    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)] VARIANT recordNumber();
    [propput, id(DISPID_IHTMLELEMENT_LANG)] void lang(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANG)] BSTR lang();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)] long offsetLeft();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)] long offsetTop();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)] long offsetWidth();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)] long offsetHeight();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)] IHTMLElement* offsetParent();
    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)] void innerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)] BSTR innerHTML();
    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)] void innerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)] BSTR innerText();
    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)] void outerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)] BSTR outerHTML();
    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)] void outerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)] BSTR outerText();
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)] void insertAdjacentHTML([in] BSTR where,[in] BSTR html);
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)] void insertAdjacentText([in] BSTR where,[in] BSTR text);
    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)] IHTMLElement* parentTextEdit();
    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)] VARIANT_BOOL isTextEdit();
    [id(DISPID_IHTMLELEMENT_CLICK)] void click();
    [propget, id(DISPID_IHTMLELEMENT_FILTERS)] IHTMLFiltersCollection* filters();
    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] void ondragstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] VARIANT ondragstart();
    [id(DISPID_IHTMLELEMENT_TOSTRING)] BSTR toString();
    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] void onbeforeupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] VARIANT onbeforeupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] void onafterupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] VARIANT onafterupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] void onerrorupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] VARIANT onerrorupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] void onrowexit(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] VARIANT onrowexit();
    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] void onrowenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] VARIANT onrowenter();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] void ondatasetchanged(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] VARIANT ondatasetchanged();
    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] void ondataavailable(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] VARIANT ondataavailable();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] void ondatasetcomplete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] VARIANT ondatasetcomplete();
    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] void onfilterchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] VARIANT onfilterchange();
    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)] IDispatch* children();
    [propget, id(DISPID_IHTMLELEMENT_ALL)] IDispatch* all();
    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)] BSTR scopeName();
    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)] void setCapture([defaultvalue(-1), in] VARIANT_BOOL containerCapture);
    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)] void releaseCapture();
    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] void onlosecapture(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] VARIANT onlosecapture();
    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)] BSTR componentFromPoint([in] long x,[in] long y);
    [id(DISPID_IHTMLELEMENT2_DOSCROLL)] void doScroll([optional, in] VARIANT component);
    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] void onscroll(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] VARIANT onscroll();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] void ondrag(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] VARIANT ondrag();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] void ondragend(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] VARIANT ondragend();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] void ondragenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] VARIANT ondragenter();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] void ondragover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] VARIANT ondragover();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] void ondragleave(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] VARIANT ondragleave();
    [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] void ondrop(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] VARIANT ondrop();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] void onbeforecut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] VARIANT onbeforecut();
    [propput, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] void oncut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] VARIANT oncut();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] void onbeforecopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] VARIANT onbeforecopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] void oncopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] VARIANT oncopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] void onbeforepaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] VARIANT onbeforepaste();
    [propput, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] void onpaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] VARIANT onpaste();
    [propget, id(DISPID_IHTMLELEMENT2_CURRENTSTYLE), nonbrowsable] IHTMLCurrentStyle* currentStyle();
    [propput, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] void onpropertychange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] VARIANT onpropertychange();
    [id(DISPID_IHTMLELEMENT2_GETCLIENTRECTS)] IHTMLRectCollection* getClientRects();
    [id(DISPID_IHTMLELEMENT2_GETBOUNDINGCLIENTRECT)] IHTMLRect* getBoundingClientRect();
    [id(DISPID_IHTMLELEMENT2_SETEXPRESSION)] void setExpression([in] BSTR propname,[in] BSTR expression,[defaultvalue(""), in] BSTR language);
    [id(DISPID_IHTMLELEMENT2_GETEXPRESSION)] VARIANT getExpression([in] BSTR propname);
    [id(DISPID_IHTMLELEMENT2_REMOVEEXPRESSION)] VARIANT_BOOL removeExpression([in] BSTR propname);
    [propput, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] void tabIndex(short v);
    [propget, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] short tabIndex();
    [id(DISPID_IHTMLELEMENT2_FOCUS)] void focus();
    [propput, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] void accessKey(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] BSTR accessKey();
    [propput, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] void onblur(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] VARIANT onblur();
    [propput, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] void onfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] VARIANT onfocus();
    [propput, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] void onresize(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] VARIANT onresize();
    [id(DISPID_IHTMLELEMENT2_BLUR)] void blur();
    [id(DISPID_IHTMLELEMENT2_ADDFILTER)] void addFilter([in] IUnknown* pUnk);
    [id(DISPID_IHTMLELEMENT2_REMOVEFILTER)] void removeFilter([in] IUnknown* pUnk);
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTHEIGHT), displaybind, bindable] long clientHeight();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTWIDTH), displaybind, bindable] long clientWidth();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTTOP), displaybind, bindable] long clientTop();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTLEFT), displaybind, bindable] long clientLeft();
    [id(DISPID_IHTMLELEMENT2_ATTACHEVENT)] VARIANT_BOOL attachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [id(DISPID_IHTMLELEMENT2_DETACHEVENT)] void detachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATE)] VARIANT readyState();
    [propput, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] void onreadystatechange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] VARIANT onreadystatechange();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] void onrowsdelete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] VARIANT onrowsdelete();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] void onrowsinserted(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] VARIANT onrowsinserted();
    [propput, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] void oncellchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] VARIANT oncellchange();
    [propput, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] void dir(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] BSTR dir();
    [id(DISPID_IHTMLELEMENT2_CREATECONTROLRANGE)] IDispatch* createControlRange();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLHEIGHT), displaybind, bindable] long scrollHeight();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLWIDTH), displaybind, bindable] long scrollWidth();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] void scrollTop(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] long scrollTop();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] void scrollLeft(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] long scrollLeft();
    [id(DISPID_IHTMLELEMENT2_CLEARATTRIBUTES)] void clearAttributes();
    [id(DISPID_IHTMLELEMENT2_MERGEATTRIBUTES)] void mergeAttributes([in] IHTMLElement* mergeThis);
    [propput, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] void oncontextmenu(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] VARIANT oncontextmenu();
    [id(DISPID_IHTMLELEMENT2_INSERTADJACENTELEMENT)] IHTMLElement* insertAdjacentElement([in] BSTR where,[in] IHTMLElement* insertedElement);
    [id(DISPID_IHTMLELEMENT2_APPLYELEMENT)] IHTMLElement* applyElement([in] IHTMLElement* apply,[in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_GETADJACENTTEXT)] BSTR getAdjacentText([in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_REPLACEADJACENTTEXT)] BSTR replaceAdjacentText([in] BSTR where,[in] BSTR newText);
    [propget, id(DISPID_IHTMLELEMENT2_CANHAVECHILDREN)] VARIANT_BOOL canHaveChildren();
    [id(DISPID_IHTMLELEMENT2_ADDBEHAVIOR)] long addBehavior([in] BSTR bstrUrl,[optional, in] VARIANT* pvarFactory);
    [id(DISPID_IHTMLELEMENT2_REMOVEBEHAVIOR)] VARIANT_BOOL removeBehavior([in] long cookie);
    [propget, id(DISPID_IHTMLELEMENT2_RUNTIMESTYLE), nonbrowsable] IHTMLStyle* runtimeStyle();
    [propget, id(DISPID_IHTMLELEMENT2_BEHAVIORURNS)] IDispatch* behaviorUrns();
    [propput, id(DISPID_IHTMLELEMENT2_TAGURN)] void tagUrn(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_TAGURN)] BSTR tagUrn();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] void onbeforeeditfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] VARIANT onbeforeeditfocus();
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATEVALUE), hidden, restricted] long readyStateValue();
    [id(DISPID_IHTMLELEMENT2_GETELEMENTSBYTAGNAME)] IHTMLElementCollection* getElementsByTagName([in] BSTR v);
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUENUMBER), hidden] long uniqueNumber();
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUEID), hidden] BSTR uniqueID();
    [propget, id(DISPID_IHTMLDOMNODE_NODETYPE)] long nodeType();
    [propget, id(DISPID_IHTMLDOMNODE_PARENTNODE)] IHTMLDOMNode* parentNode();
    [id(DISPID_IHTMLDOMNODE_HASCHILDNODES)] VARIANT_BOOL hasChildNodes();
    [propget, id(DISPID_IHTMLDOMNODE_CHILDNODES)] IDispatch* childNodes();
    [propget, id(DISPID_IHTMLDOMNODE_ATTRIBUTES)] IDispatch* attributes();
    [id(DISPID_IHTMLDOMNODE_INSERTBEFORE)] IHTMLDOMNode* insertBefore([in] IHTMLDOMNode* newChild,[optional, in] VARIANT refChild);
    [id(DISPID_IHTMLDOMNODE_REMOVECHILD)] IHTMLDOMNode* removeChild([in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_REPLACECHILD)] IHTMLDOMNode* replaceChild([in] IHTMLDOMNode* newChild,[in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_CLONENODE)] IHTMLDOMNode* cloneNode([in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_REMOVENODE)] IHTMLDOMNode* removeNode([defaultvalue(0), in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_SWAPNODE)] IHTMLDOMNode* swapNode([in] IHTMLDOMNode* otherNode);
    [id(DISPID_IHTMLDOMNODE_REPLACENODE)] IHTMLDOMNode* replaceNode([in] IHTMLDOMNode* replacement);
    [id(DISPID_IHTMLDOMNODE_APPENDCHILD)] IHTMLDOMNode* appendChild([in] IHTMLDOMNode* newChild);
    [propget, id(DISPID_IHTMLDOMNODE_NODENAME)] BSTR nodeName();
    [propput, id(DISPID_IHTMLDOMNODE_NODEVALUE)] void nodeValue(VARIANT v);
    [propget, id(DISPID_IHTMLDOMNODE_NODEVALUE)] VARIANT nodeValue();
    [propget, id(DISPID_IHTMLDOMNODE_FIRSTCHILD)] IHTMLDOMNode* firstChild();
    [propget, id(DISPID_IHTMLDOMNODE_LASTCHILD)] IHTMLDOMNode* lastChild();
    [propget, id(DISPID_IHTMLDOMNODE_PREVIOUSSIBLING)] IHTMLDOMNode* previousSibling();
    [propget, id(DISPID_IHTMLDOMNODE_NEXTSIBLING)] IHTMLDOMNode* nextSibling();
    [propput, id(DISPID_IHTMLISINDEXELEMENT_PROMPT), displaybind, bindable] void prompt(BSTR v);
    [propget, id(DISPID_IHTMLISINDEXELEMENT_PROMPT), displaybind, bindable] BSTR prompt();
    [propput, id(DISPID_IHTMLISINDEXELEMENT_ACTION), displaybind, bindable] void action(BSTR v);
    [propget, id(DISPID_IHTMLISINDEXELEMENT_ACTION), displaybind, bindable] BSTR action();
};
[
    uuid(3050f278-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLIsIndexElement
{
    [default]           dispinterface DispHTMLIsIndexElement;
    [source, default]   dispinterface HTMLElementEvents;
    [source]            dispinterface HTMLElementEvents2;
                        interface IHTMLElement;
                        interface IHTMLElement2;
                        interface IHTMLUniqueName;
                        interface IHTMLDOMNode;
                        interface IHTMLIsIndexElement;
};
cpp_quote("EXTERN_C const GUID CLSID_CIsIndexElement;")
[
    hidden,
    uuid(3050f51a-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTMLNextIdElement
{
properties:
methods:
    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)] void setAttribute([in] BSTR strAttributeName,[in] VARIANT AttributeValue,[defaultvalue(1), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)] VARIANT getAttribute([in] BSTR strAttributeName,[defaultvalue(0), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)] VARIANT_BOOL removeAttribute([in] BSTR strAttributeName,[defaultvalue(1), in] LONG lFlags);
    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] void className(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] BSTR className();
    [propput, id(DISPID_IHTMLELEMENT_ID), bindable] void id(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_ID), bindable] BSTR id();
    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)] BSTR tagName();
    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)] IHTMLElement* parentElement();
    [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable] IHTMLStyle* style();
    [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] void onhelp(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] VARIANT onhelp();
    [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] void onclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] VARIANT onclick();
    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] void ondblclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] VARIANT ondblclick();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] void onkeydown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] VARIANT onkeydown();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] void onkeyup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] VARIANT onkeyup();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] void onkeypress(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] VARIANT onkeypress();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] void onmouseout(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] VARIANT onmouseout();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] void onmouseover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] VARIANT onmouseover();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] void onmousemove(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] VARIANT onmousemove();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] void onmousedown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] VARIANT onmousedown();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] void onmouseup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] VARIANT onmouseup();
    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)] IDispatch* document();
    [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] void title(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] BSTR title();
    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] void language(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] BSTR language();
    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] void onselectstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] VARIANT onselectstart();
    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)] void scrollIntoView([optional, in] VARIANT varargStart);
    [id(DISPID_IHTMLELEMENT_CONTAINS)] VARIANT_BOOL contains([in] IHTMLElement* pChild);
    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable] long sourceIndex();
    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)] VARIANT recordNumber();
    [propput, id(DISPID_IHTMLELEMENT_LANG)] void lang(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANG)] BSTR lang();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)] long offsetLeft();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)] long offsetTop();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)] long offsetWidth();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)] long offsetHeight();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)] IHTMLElement* offsetParent();
    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)] void innerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)] BSTR innerHTML();
    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)] void innerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)] BSTR innerText();
    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)] void outerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)] BSTR outerHTML();
    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)] void outerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)] BSTR outerText();
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)] void insertAdjacentHTML([in] BSTR where,[in] BSTR html);
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)] void insertAdjacentText([in] BSTR where,[in] BSTR text);
    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)] IHTMLElement* parentTextEdit();
    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)] VARIANT_BOOL isTextEdit();
    [id(DISPID_IHTMLELEMENT_CLICK)] void click();
    [propget, id(DISPID_IHTMLELEMENT_FILTERS)] IHTMLFiltersCollection* filters();
    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] void ondragstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] VARIANT ondragstart();
    [id(DISPID_IHTMLELEMENT_TOSTRING)] BSTR toString();
    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] void onbeforeupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] VARIANT onbeforeupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] void onafterupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] VARIANT onafterupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] void onerrorupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] VARIANT onerrorupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] void onrowexit(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] VARIANT onrowexit();
    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] void onrowenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] VARIANT onrowenter();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] void ondatasetchanged(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] VARIANT ondatasetchanged();
    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] void ondataavailable(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] VARIANT ondataavailable();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] void ondatasetcomplete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] VARIANT ondatasetcomplete();
    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] void onfilterchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] VARIANT onfilterchange();
    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)] IDispatch* children();
    [propget, id(DISPID_IHTMLELEMENT_ALL)] IDispatch* all();
    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)] BSTR scopeName();
    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)] void setCapture([defaultvalue(-1), in] VARIANT_BOOL containerCapture);
    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)] void releaseCapture();
    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] void onlosecapture(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] VARIANT onlosecapture();
    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)] BSTR componentFromPoint([in] long x,[in] long y);
    [id(DISPID_IHTMLELEMENT2_DOSCROLL)] void doScroll([optional, in] VARIANT component);
    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] void onscroll(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] VARIANT onscroll();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] void ondrag(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] VARIANT ondrag();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] void ondragend(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] VARIANT ondragend();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] void ondragenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] VARIANT ondragenter();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] void ondragover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] VARIANT ondragover();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] void ondragleave(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] VARIANT ondragleave();
    [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] void ondrop(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] VARIANT ondrop();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] void onbeforecut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] VARIANT onbeforecut();
    [propput, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] void oncut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] VARIANT oncut();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] void onbeforecopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] VARIANT onbeforecopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] void oncopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] VARIANT oncopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] void onbeforepaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] VARIANT onbeforepaste();
    [propput, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] void onpaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] VARIANT onpaste();
    [propget, id(DISPID_IHTMLELEMENT2_CURRENTSTYLE), nonbrowsable] IHTMLCurrentStyle* currentStyle();
    [propput, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] void onpropertychange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] VARIANT onpropertychange();
    [id(DISPID_IHTMLELEMENT2_GETCLIENTRECTS)] IHTMLRectCollection* getClientRects();
    [id(DISPID_IHTMLELEMENT2_GETBOUNDINGCLIENTRECT)] IHTMLRect* getBoundingClientRect();
    [id(DISPID_IHTMLELEMENT2_SETEXPRESSION)] void setExpression([in] BSTR propname,[in] BSTR expression,[defaultvalue(""), in] BSTR language);
    [id(DISPID_IHTMLELEMENT2_GETEXPRESSION)] VARIANT getExpression([in] BSTR propname);
    [id(DISPID_IHTMLELEMENT2_REMOVEEXPRESSION)] VARIANT_BOOL removeExpression([in] BSTR propname);
    [propput, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] void tabIndex(short v);
    [propget, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] short tabIndex();
    [id(DISPID_IHTMLELEMENT2_FOCUS)] void focus();
    [propput, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] void accessKey(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] BSTR accessKey();
    [propput, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] void onblur(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] VARIANT onblur();
    [propput, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] void onfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] VARIANT onfocus();
    [propput, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] void onresize(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] VARIANT onresize();
    [id(DISPID_IHTMLELEMENT2_BLUR)] void blur();
    [id(DISPID_IHTMLELEMENT2_ADDFILTER)] void addFilter([in] IUnknown* pUnk);
    [id(DISPID_IHTMLELEMENT2_REMOVEFILTER)] void removeFilter([in] IUnknown* pUnk);
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTHEIGHT), displaybind, bindable] long clientHeight();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTWIDTH), displaybind, bindable] long clientWidth();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTTOP), displaybind, bindable] long clientTop();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTLEFT), displaybind, bindable] long clientLeft();
    [id(DISPID_IHTMLELEMENT2_ATTACHEVENT)] VARIANT_BOOL attachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [id(DISPID_IHTMLELEMENT2_DETACHEVENT)] void detachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATE)] VARIANT readyState();
    [propput, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] void onreadystatechange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] VARIANT onreadystatechange();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] void onrowsdelete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] VARIANT onrowsdelete();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] void onrowsinserted(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] VARIANT onrowsinserted();
    [propput, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] void oncellchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] VARIANT oncellchange();
    [propput, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] void dir(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] BSTR dir();
    [id(DISPID_IHTMLELEMENT2_CREATECONTROLRANGE)] IDispatch* createControlRange();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLHEIGHT), displaybind, bindable] long scrollHeight();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLWIDTH), displaybind, bindable] long scrollWidth();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] void scrollTop(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] long scrollTop();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] void scrollLeft(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] long scrollLeft();
    [id(DISPID_IHTMLELEMENT2_CLEARATTRIBUTES)] void clearAttributes();
    [id(DISPID_IHTMLELEMENT2_MERGEATTRIBUTES)] void mergeAttributes([in] IHTMLElement* mergeThis);
    [propput, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] void oncontextmenu(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] VARIANT oncontextmenu();
    [id(DISPID_IHTMLELEMENT2_INSERTADJACENTELEMENT)] IHTMLElement* insertAdjacentElement([in] BSTR where,[in] IHTMLElement* insertedElement);
    [id(DISPID_IHTMLELEMENT2_APPLYELEMENT)] IHTMLElement* applyElement([in] IHTMLElement* apply,[in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_GETADJACENTTEXT)] BSTR getAdjacentText([in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_REPLACEADJACENTTEXT)] BSTR replaceAdjacentText([in] BSTR where,[in] BSTR newText);
    [propget, id(DISPID_IHTMLELEMENT2_CANHAVECHILDREN)] VARIANT_BOOL canHaveChildren();
    [id(DISPID_IHTMLELEMENT2_ADDBEHAVIOR)] long addBehavior([in] BSTR bstrUrl,[optional, in] VARIANT* pvarFactory);
    [id(DISPID_IHTMLELEMENT2_REMOVEBEHAVIOR)] VARIANT_BOOL removeBehavior([in] long cookie);
    [propget, id(DISPID_IHTMLELEMENT2_RUNTIMESTYLE), nonbrowsable] IHTMLStyle* runtimeStyle();
    [propget, id(DISPID_IHTMLELEMENT2_BEHAVIORURNS)] IDispatch* behaviorUrns();
    [propput, id(DISPID_IHTMLELEMENT2_TAGURN)] void tagUrn(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_TAGURN)] BSTR tagUrn();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] void onbeforeeditfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] VARIANT onbeforeeditfocus();
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATEVALUE), hidden, restricted] long readyStateValue();
    [id(DISPID_IHTMLELEMENT2_GETELEMENTSBYTAGNAME)] IHTMLElementCollection* getElementsByTagName([in] BSTR v);
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUENUMBER), hidden] long uniqueNumber();
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUEID), hidden] BSTR uniqueID();
    [propget, id(DISPID_IHTMLDOMNODE_NODETYPE)] long nodeType();
    [propget, id(DISPID_IHTMLDOMNODE_PARENTNODE)] IHTMLDOMNode* parentNode();
    [id(DISPID_IHTMLDOMNODE_HASCHILDNODES)] VARIANT_BOOL hasChildNodes();
    [propget, id(DISPID_IHTMLDOMNODE_CHILDNODES)] IDispatch* childNodes();
    [propget, id(DISPID_IHTMLDOMNODE_ATTRIBUTES)] IDispatch* attributes();
    [id(DISPID_IHTMLDOMNODE_INSERTBEFORE)] IHTMLDOMNode* insertBefore([in] IHTMLDOMNode* newChild,[optional, in] VARIANT refChild);
    [id(DISPID_IHTMLDOMNODE_REMOVECHILD)] IHTMLDOMNode* removeChild([in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_REPLACECHILD)] IHTMLDOMNode* replaceChild([in] IHTMLDOMNode* newChild,[in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_CLONENODE)] IHTMLDOMNode* cloneNode([in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_REMOVENODE)] IHTMLDOMNode* removeNode([defaultvalue(0), in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_SWAPNODE)] IHTMLDOMNode* swapNode([in] IHTMLDOMNode* otherNode);
    [id(DISPID_IHTMLDOMNODE_REPLACENODE)] IHTMLDOMNode* replaceNode([in] IHTMLDOMNode* replacement);
    [id(DISPID_IHTMLDOMNODE_APPENDCHILD)] IHTMLDOMNode* appendChild([in] IHTMLDOMNode* newChild);
    [propget, id(DISPID_IHTMLDOMNODE_NODENAME)] BSTR nodeName();
    [propput, id(DISPID_IHTMLDOMNODE_NODEVALUE)] void nodeValue(VARIANT v);
    [propget, id(DISPID_IHTMLDOMNODE_NODEVALUE)] VARIANT nodeValue();
    [propget, id(DISPID_IHTMLDOMNODE_FIRSTCHILD)] IHTMLDOMNode* firstChild();
    [propget, id(DISPID_IHTMLDOMNODE_LASTCHILD)] IHTMLDOMNode* lastChild();
    [propget, id(DISPID_IHTMLDOMNODE_PREVIOUSSIBLING)] IHTMLDOMNode* previousSibling();
    [propget, id(DISPID_IHTMLDOMNODE_NEXTSIBLING)] IHTMLDOMNode* nextSibling();
    [propput, id(DISPID_IHTMLNEXTIDELEMENT_N), displaybind, bindable] void n(BSTR v);
    [propget, id(DISPID_IHTMLNEXTIDELEMENT_N), displaybind, bindable] BSTR n();
};
[
    uuid(3050f279-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLNextIdElement
{
    [default]           dispinterface DispHTMLNextIdElement;
    [source, default]   dispinterface HTMLElementEvents;
    [source]            dispinterface HTMLElementEvents2;
                        interface IHTMLElement;
                        interface IHTMLElement2;
                        interface IHTMLUniqueName;
                        interface IHTMLDOMNode;
                        interface IHTMLNextIdElement;
};
cpp_quote("EXTERN_C const GUID CLSID_CNextIdElement;")
[
    odl,
    oleautomation,
    dual,
    uuid(3050f202-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLBaseFontElement : IDispatch
{
    [propput, id(DISPID_IHTMLBASEFONTELEMENT_COLOR), displaybind, bindable] HRESULT color([in] VARIANT v);
    [propget, id(DISPID_IHTMLBASEFONTELEMENT_COLOR), displaybind, bindable] HRESULT color([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLBASEFONTELEMENT_FACE), displaybind, bindable] HRESULT face([in] BSTR v);
    [propget, id(DISPID_IHTMLBASEFONTELEMENT_FACE), displaybind, bindable] HRESULT face([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLBASEFONTELEMENT_SIZE), displaybind, bindable] HRESULT size([in] long v);
    [propget, id(DISPID_IHTMLBASEFONTELEMENT_SIZE), displaybind, bindable] HRESULT size([retval, out] long * p);
};
[
    hidden,
    uuid(3050f504-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTMLBaseFontElement
{
properties:
methods:
    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)] void setAttribute([in] BSTR strAttributeName,[in] VARIANT AttributeValue,[defaultvalue(1), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)] VARIANT getAttribute([in] BSTR strAttributeName,[defaultvalue(0), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)] VARIANT_BOOL removeAttribute([in] BSTR strAttributeName,[defaultvalue(1), in] LONG lFlags);
    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] void className(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] BSTR className();
    [propput, id(DISPID_IHTMLELEMENT_ID), bindable] void id(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_ID), bindable] BSTR id();
    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)] BSTR tagName();
    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)] IHTMLElement* parentElement();
    [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable] IHTMLStyle* style();
    [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] void onhelp(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] VARIANT onhelp();
    [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] void onclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] VARIANT onclick();
    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] void ondblclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] VARIANT ondblclick();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] void onkeydown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] VARIANT onkeydown();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] void onkeyup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] VARIANT onkeyup();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] void onkeypress(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] VARIANT onkeypress();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] void onmouseout(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] VARIANT onmouseout();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] void onmouseover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] VARIANT onmouseover();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] void onmousemove(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] VARIANT onmousemove();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] void onmousedown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] VARIANT onmousedown();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] void onmouseup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] VARIANT onmouseup();
    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)] IDispatch* document();
    [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] void title(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] BSTR title();
    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] void language(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] BSTR language();
    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] void onselectstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] VARIANT onselectstart();
    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)] void scrollIntoView([optional, in] VARIANT varargStart);
    [id(DISPID_IHTMLELEMENT_CONTAINS)] VARIANT_BOOL contains([in] IHTMLElement* pChild);
    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable] long sourceIndex();
    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)] VARIANT recordNumber();
    [propput, id(DISPID_IHTMLELEMENT_LANG)] void lang(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANG)] BSTR lang();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)] long offsetLeft();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)] long offsetTop();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)] long offsetWidth();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)] long offsetHeight();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)] IHTMLElement* offsetParent();
    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)] void innerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)] BSTR innerHTML();
    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)] void innerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)] BSTR innerText();
    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)] void outerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)] BSTR outerHTML();
    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)] void outerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)] BSTR outerText();
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)] void insertAdjacentHTML([in] BSTR where,[in] BSTR html);
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)] void insertAdjacentText([in] BSTR where,[in] BSTR text);
    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)] IHTMLElement* parentTextEdit();
    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)] VARIANT_BOOL isTextEdit();
    [id(DISPID_IHTMLELEMENT_CLICK)] void click();
    [propget, id(DISPID_IHTMLELEMENT_FILTERS)] IHTMLFiltersCollection* filters();
    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] void ondragstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] VARIANT ondragstart();
    [id(DISPID_IHTMLELEMENT_TOSTRING)] BSTR toString();
    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] void onbeforeupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] VARIANT onbeforeupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] void onafterupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] VARIANT onafterupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] void onerrorupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] VARIANT onerrorupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] void onrowexit(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] VARIANT onrowexit();
    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] void onrowenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] VARIANT onrowenter();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] void ondatasetchanged(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] VARIANT ondatasetchanged();
    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] void ondataavailable(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] VARIANT ondataavailable();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] void ondatasetcomplete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] VARIANT ondatasetcomplete();
    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] void onfilterchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] VARIANT onfilterchange();
    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)] IDispatch* children();
    [propget, id(DISPID_IHTMLELEMENT_ALL)] IDispatch* all();
    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)] BSTR scopeName();
    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)] void setCapture([defaultvalue(-1), in] VARIANT_BOOL containerCapture);
    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)] void releaseCapture();
    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] void onlosecapture(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] VARIANT onlosecapture();
    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)] BSTR componentFromPoint([in] long x,[in] long y);
    [id(DISPID_IHTMLELEMENT2_DOSCROLL)] void doScroll([optional, in] VARIANT component);
    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] void onscroll(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] VARIANT onscroll();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] void ondrag(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] VARIANT ondrag();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] void ondragend(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] VARIANT ondragend();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] void ondragenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] VARIANT ondragenter();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] void ondragover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] VARIANT ondragover();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] void ondragleave(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] VARIANT ondragleave();
    [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] void ondrop(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] VARIANT ondrop();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] void onbeforecut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] VARIANT onbeforecut();
    [propput, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] void oncut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] VARIANT oncut();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] void onbeforecopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] VARIANT onbeforecopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] void oncopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] VARIANT oncopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] void onbeforepaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] VARIANT onbeforepaste();
    [propput, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] void onpaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] VARIANT onpaste();
    [propget, id(DISPID_IHTMLELEMENT2_CURRENTSTYLE), nonbrowsable] IHTMLCurrentStyle* currentStyle();
    [propput, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] void onpropertychange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] VARIANT onpropertychange();
    [id(DISPID_IHTMLELEMENT2_GETCLIENTRECTS)] IHTMLRectCollection* getClientRects();
    [id(DISPID_IHTMLELEMENT2_GETBOUNDINGCLIENTRECT)] IHTMLRect* getBoundingClientRect();
    [id(DISPID_IHTMLELEMENT2_SETEXPRESSION)] void setExpression([in] BSTR propname,[in] BSTR expression,[defaultvalue(""), in] BSTR language);
    [id(DISPID_IHTMLELEMENT2_GETEXPRESSION)] VARIANT getExpression([in] BSTR propname);
    [id(DISPID_IHTMLELEMENT2_REMOVEEXPRESSION)] VARIANT_BOOL removeExpression([in] BSTR propname);
    [propput, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] void tabIndex(short v);
    [propget, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] short tabIndex();
    [id(DISPID_IHTMLELEMENT2_FOCUS)] void focus();
    [propput, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] void accessKey(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] BSTR accessKey();
    [propput, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] void onblur(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] VARIANT onblur();
    [propput, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] void onfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] VARIANT onfocus();
    [propput, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] void onresize(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] VARIANT onresize();
    [id(DISPID_IHTMLELEMENT2_BLUR)] void blur();
    [id(DISPID_IHTMLELEMENT2_ADDFILTER)] void addFilter([in] IUnknown* pUnk);
    [id(DISPID_IHTMLELEMENT2_REMOVEFILTER)] void removeFilter([in] IUnknown* pUnk);
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTHEIGHT), displaybind, bindable] long clientHeight();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTWIDTH), displaybind, bindable] long clientWidth();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTTOP), displaybind, bindable] long clientTop();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTLEFT), displaybind, bindable] long clientLeft();
    [id(DISPID_IHTMLELEMENT2_ATTACHEVENT)] VARIANT_BOOL attachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [id(DISPID_IHTMLELEMENT2_DETACHEVENT)] void detachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATE)] VARIANT readyState();
    [propput, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] void onreadystatechange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] VARIANT onreadystatechange();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] void onrowsdelete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] VARIANT onrowsdelete();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] void onrowsinserted(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] VARIANT onrowsinserted();
    [propput, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] void oncellchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] VARIANT oncellchange();
    [propput, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] void dir(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] BSTR dir();
    [id(DISPID_IHTMLELEMENT2_CREATECONTROLRANGE)] IDispatch* createControlRange();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLHEIGHT), displaybind, bindable] long scrollHeight();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLWIDTH), displaybind, bindable] long scrollWidth();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] void scrollTop(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] long scrollTop();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] void scrollLeft(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] long scrollLeft();
    [id(DISPID_IHTMLELEMENT2_CLEARATTRIBUTES)] void clearAttributes();
    [id(DISPID_IHTMLELEMENT2_MERGEATTRIBUTES)] void mergeAttributes([in] IHTMLElement* mergeThis);
    [propput, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] void oncontextmenu(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] VARIANT oncontextmenu();
    [id(DISPID_IHTMLELEMENT2_INSERTADJACENTELEMENT)] IHTMLElement* insertAdjacentElement([in] BSTR where,[in] IHTMLElement* insertedElement);
    [id(DISPID_IHTMLELEMENT2_APPLYELEMENT)] IHTMLElement* applyElement([in] IHTMLElement* apply,[in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_GETADJACENTTEXT)] BSTR getAdjacentText([in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_REPLACEADJACENTTEXT)] BSTR replaceAdjacentText([in] BSTR where,[in] BSTR newText);
    [propget, id(DISPID_IHTMLELEMENT2_CANHAVECHILDREN)] VARIANT_BOOL canHaveChildren();
    [id(DISPID_IHTMLELEMENT2_ADDBEHAVIOR)] long addBehavior([in] BSTR bstrUrl,[optional, in] VARIANT* pvarFactory);
    [id(DISPID_IHTMLELEMENT2_REMOVEBEHAVIOR)] VARIANT_BOOL removeBehavior([in] long cookie);
    [propget, id(DISPID_IHTMLELEMENT2_RUNTIMESTYLE), nonbrowsable] IHTMLStyle* runtimeStyle();
    [propget, id(DISPID_IHTMLELEMENT2_BEHAVIORURNS)] IDispatch* behaviorUrns();
    [propput, id(DISPID_IHTMLELEMENT2_TAGURN)] void tagUrn(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_TAGURN)] BSTR tagUrn();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] void onbeforeeditfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] VARIANT onbeforeeditfocus();
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATEVALUE), hidden, restricted] long readyStateValue();
    [id(DISPID_IHTMLELEMENT2_GETELEMENTSBYTAGNAME)] IHTMLElementCollection* getElementsByTagName([in] BSTR v);
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUENUMBER), hidden] long uniqueNumber();
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUEID), hidden] BSTR uniqueID();
    [propget, id(DISPID_IHTMLDOMNODE_NODETYPE)] long nodeType();
    [propget, id(DISPID_IHTMLDOMNODE_PARENTNODE)] IHTMLDOMNode* parentNode();
    [id(DISPID_IHTMLDOMNODE_HASCHILDNODES)] VARIANT_BOOL hasChildNodes();
    [propget, id(DISPID_IHTMLDOMNODE_CHILDNODES)] IDispatch* childNodes();
    [propget, id(DISPID_IHTMLDOMNODE_ATTRIBUTES)] IDispatch* attributes();
    [id(DISPID_IHTMLDOMNODE_INSERTBEFORE)] IHTMLDOMNode* insertBefore([in] IHTMLDOMNode* newChild,[optional, in] VARIANT refChild);
    [id(DISPID_IHTMLDOMNODE_REMOVECHILD)] IHTMLDOMNode* removeChild([in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_REPLACECHILD)] IHTMLDOMNode* replaceChild([in] IHTMLDOMNode* newChild,[in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_CLONENODE)] IHTMLDOMNode* cloneNode([in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_REMOVENODE)] IHTMLDOMNode* removeNode([defaultvalue(0), in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_SWAPNODE)] IHTMLDOMNode* swapNode([in] IHTMLDOMNode* otherNode);
    [id(DISPID_IHTMLDOMNODE_REPLACENODE)] IHTMLDOMNode* replaceNode([in] IHTMLDOMNode* replacement);
    [id(DISPID_IHTMLDOMNODE_APPENDCHILD)] IHTMLDOMNode* appendChild([in] IHTMLDOMNode* newChild);
    [propget, id(DISPID_IHTMLDOMNODE_NODENAME)] BSTR nodeName();
    [propput, id(DISPID_IHTMLDOMNODE_NODEVALUE)] void nodeValue(VARIANT v);
    [propget, id(DISPID_IHTMLDOMNODE_NODEVALUE)] VARIANT nodeValue();
    [propget, id(DISPID_IHTMLDOMNODE_FIRSTCHILD)] IHTMLDOMNode* firstChild();
    [propget, id(DISPID_IHTMLDOMNODE_LASTCHILD)] IHTMLDOMNode* lastChild();
    [propget, id(DISPID_IHTMLDOMNODE_PREVIOUSSIBLING)] IHTMLDOMNode* previousSibling();
    [propget, id(DISPID_IHTMLDOMNODE_NEXTSIBLING)] IHTMLDOMNode* nextSibling();
    [propput, id(DISPID_IHTMLBASEFONTELEMENT_COLOR), displaybind, bindable] void color(VARIANT v);
    [propget, id(DISPID_IHTMLBASEFONTELEMENT_COLOR), displaybind, bindable] VARIANT color();
    [propput, id(DISPID_IHTMLBASEFONTELEMENT_FACE), displaybind, bindable] void face(BSTR v);
    [propget, id(DISPID_IHTMLBASEFONTELEMENT_FACE), displaybind, bindable] BSTR face();
    [propput, id(DISPID_IHTMLBASEFONTELEMENT_SIZE), displaybind, bindable] void size(long v);
    [propget, id(DISPID_IHTMLBASEFONTELEMENT_SIZE), displaybind, bindable] long size();
};
[
    uuid(3050f282-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLBaseFontElement
{
    [default]           dispinterface DispHTMLBaseFontElement;
    [source, default]   dispinterface HTMLElementEvents;
    [source]            dispinterface HTMLElementEvents2;
                        interface IHTMLElement;
                        interface IHTMLElement2;
                        interface IHTMLUniqueName;
                        interface IHTMLDOMNode;
                        interface IHTMLBaseFontElement;
};
cpp_quote("EXTERN_C const GUID CLSID_CBaseFontElement;")
[
    odl,
    oleautomation,
    dual,
    uuid(3050f209-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLUnknownElement : IDispatch
{
};
[
    hidden,
    uuid(3050f539-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTMLUnknownElement
{
properties:
methods:
    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)] void setAttribute([in] BSTR strAttributeName,[in] VARIANT AttributeValue,[defaultvalue(1), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)] VARIANT getAttribute([in] BSTR strAttributeName,[defaultvalue(0), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)] VARIANT_BOOL removeAttribute([in] BSTR strAttributeName,[defaultvalue(1), in] LONG lFlags);
    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] void className(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] BSTR className();
    [propput, id(DISPID_IHTMLELEMENT_ID), bindable] void id(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_ID), bindable] BSTR id();
    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)] BSTR tagName();
    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)] IHTMLElement* parentElement();
    [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable] IHTMLStyle* style();
    [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] void onhelp(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] VARIANT onhelp();
    [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] void onclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] VARIANT onclick();
    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] void ondblclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] VARIANT ondblclick();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] void onkeydown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] VARIANT onkeydown();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] void onkeyup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] VARIANT onkeyup();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] void onkeypress(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] VARIANT onkeypress();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] void onmouseout(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] VARIANT onmouseout();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] void onmouseover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] VARIANT onmouseover();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] void onmousemove(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] VARIANT onmousemove();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] void onmousedown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] VARIANT onmousedown();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] void onmouseup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] VARIANT onmouseup();
    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)] IDispatch* document();
    [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] void title(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] BSTR title();
    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] void language(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] BSTR language();
    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] void onselectstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] VARIANT onselectstart();
    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)] void scrollIntoView([optional, in] VARIANT varargStart);
    [id(DISPID_IHTMLELEMENT_CONTAINS)] VARIANT_BOOL contains([in] IHTMLElement* pChild);
    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable] long sourceIndex();
    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)] VARIANT recordNumber();
    [propput, id(DISPID_IHTMLELEMENT_LANG)] void lang(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANG)] BSTR lang();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)] long offsetLeft();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)] long offsetTop();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)] long offsetWidth();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)] long offsetHeight();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)] IHTMLElement* offsetParent();
    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)] void innerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)] BSTR innerHTML();
    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)] void innerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)] BSTR innerText();
    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)] void outerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)] BSTR outerHTML();
    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)] void outerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)] BSTR outerText();
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)] void insertAdjacentHTML([in] BSTR where,[in] BSTR html);
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)] void insertAdjacentText([in] BSTR where,[in] BSTR text);
    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)] IHTMLElement* parentTextEdit();
    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)] VARIANT_BOOL isTextEdit();
    [id(DISPID_IHTMLELEMENT_CLICK)] void click();
    [propget, id(DISPID_IHTMLELEMENT_FILTERS)] IHTMLFiltersCollection* filters();
    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] void ondragstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] VARIANT ondragstart();
    [id(DISPID_IHTMLELEMENT_TOSTRING)] BSTR toString();
    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] void onbeforeupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] VARIANT onbeforeupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] void onafterupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] VARIANT onafterupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] void onerrorupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] VARIANT onerrorupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] void onrowexit(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] VARIANT onrowexit();
    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] void onrowenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] VARIANT onrowenter();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] void ondatasetchanged(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] VARIANT ondatasetchanged();
    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] void ondataavailable(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] VARIANT ondataavailable();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] void ondatasetcomplete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] VARIANT ondatasetcomplete();
    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] void onfilterchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] VARIANT onfilterchange();
    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)] IDispatch* children();
    [propget, id(DISPID_IHTMLELEMENT_ALL)] IDispatch* all();
    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)] BSTR scopeName();
    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)] void setCapture([defaultvalue(-1), in] VARIANT_BOOL containerCapture);
    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)] void releaseCapture();
    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] void onlosecapture(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] VARIANT onlosecapture();
    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)] BSTR componentFromPoint([in] long x,[in] long y);
    [id(DISPID_IHTMLELEMENT2_DOSCROLL)] void doScroll([optional, in] VARIANT component);
    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] void onscroll(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] VARIANT onscroll();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] void ondrag(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] VARIANT ondrag();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] void ondragend(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] VARIANT ondragend();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] void ondragenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] VARIANT ondragenter();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] void ondragover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] VARIANT ondragover();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] void ondragleave(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] VARIANT ondragleave();
    [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] void ondrop(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] VARIANT ondrop();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] void onbeforecut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] VARIANT onbeforecut();
    [propput, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] void oncut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] VARIANT oncut();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] void onbeforecopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] VARIANT onbeforecopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] void oncopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] VARIANT oncopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] void onbeforepaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] VARIANT onbeforepaste();
    [propput, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] void onpaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] VARIANT onpaste();
    [propget, id(DISPID_IHTMLELEMENT2_CURRENTSTYLE), nonbrowsable] IHTMLCurrentStyle* currentStyle();
    [propput, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] void onpropertychange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] VARIANT onpropertychange();
    [id(DISPID_IHTMLELEMENT2_GETCLIENTRECTS)] IHTMLRectCollection* getClientRects();
    [id(DISPID_IHTMLELEMENT2_GETBOUNDINGCLIENTRECT)] IHTMLRect* getBoundingClientRect();
    [id(DISPID_IHTMLELEMENT2_SETEXPRESSION)] void setExpression([in] BSTR propname,[in] BSTR expression,[defaultvalue(""), in] BSTR language);
    [id(DISPID_IHTMLELEMENT2_GETEXPRESSION)] VARIANT getExpression([in] BSTR propname);
    [id(DISPID_IHTMLELEMENT2_REMOVEEXPRESSION)] VARIANT_BOOL removeExpression([in] BSTR propname);
    [propput, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] void tabIndex(short v);
    [propget, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] short tabIndex();
    [id(DISPID_IHTMLELEMENT2_FOCUS)] void focus();
    [propput, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] void accessKey(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] BSTR accessKey();
    [propput, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] void onblur(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] VARIANT onblur();
    [propput, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] void onfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] VARIANT onfocus();
    [propput, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] void onresize(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] VARIANT onresize();
    [id(DISPID_IHTMLELEMENT2_BLUR)] void blur();
    [id(DISPID_IHTMLELEMENT2_ADDFILTER)] void addFilter([in] IUnknown* pUnk);
    [id(DISPID_IHTMLELEMENT2_REMOVEFILTER)] void removeFilter([in] IUnknown* pUnk);
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTHEIGHT), displaybind, bindable] long clientHeight();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTWIDTH), displaybind, bindable] long clientWidth();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTTOP), displaybind, bindable] long clientTop();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTLEFT), displaybind, bindable] long clientLeft();
    [id(DISPID_IHTMLELEMENT2_ATTACHEVENT)] VARIANT_BOOL attachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [id(DISPID_IHTMLELEMENT2_DETACHEVENT)] void detachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATE)] VARIANT readyState();
    [propput, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] void onreadystatechange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] VARIANT onreadystatechange();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] void onrowsdelete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] VARIANT onrowsdelete();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] void onrowsinserted(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] VARIANT onrowsinserted();
    [propput, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] void oncellchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] VARIANT oncellchange();
    [propput, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] void dir(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] BSTR dir();
    [id(DISPID_IHTMLELEMENT2_CREATECONTROLRANGE)] IDispatch* createControlRange();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLHEIGHT), displaybind, bindable] long scrollHeight();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLWIDTH), displaybind, bindable] long scrollWidth();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] void scrollTop(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] long scrollTop();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] void scrollLeft(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] long scrollLeft();
    [id(DISPID_IHTMLELEMENT2_CLEARATTRIBUTES)] void clearAttributes();
    [id(DISPID_IHTMLELEMENT2_MERGEATTRIBUTES)] void mergeAttributes([in] IHTMLElement* mergeThis);
    [propput, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] void oncontextmenu(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] VARIANT oncontextmenu();
    [id(DISPID_IHTMLELEMENT2_INSERTADJACENTELEMENT)] IHTMLElement* insertAdjacentElement([in] BSTR where,[in] IHTMLElement* insertedElement);
    [id(DISPID_IHTMLELEMENT2_APPLYELEMENT)] IHTMLElement* applyElement([in] IHTMLElement* apply,[in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_GETADJACENTTEXT)] BSTR getAdjacentText([in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_REPLACEADJACENTTEXT)] BSTR replaceAdjacentText([in] BSTR where,[in] BSTR newText);
    [propget, id(DISPID_IHTMLELEMENT2_CANHAVECHILDREN)] VARIANT_BOOL canHaveChildren();
    [id(DISPID_IHTMLELEMENT2_ADDBEHAVIOR)] long addBehavior([in] BSTR bstrUrl,[optional, in] VARIANT* pvarFactory);
    [id(DISPID_IHTMLELEMENT2_REMOVEBEHAVIOR)] VARIANT_BOOL removeBehavior([in] long cookie);
    [propget, id(DISPID_IHTMLELEMENT2_RUNTIMESTYLE), nonbrowsable] IHTMLStyle* runtimeStyle();
    [propget, id(DISPID_IHTMLELEMENT2_BEHAVIORURNS)] IDispatch* behaviorUrns();
    [propput, id(DISPID_IHTMLELEMENT2_TAGURN)] void tagUrn(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_TAGURN)] BSTR tagUrn();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] void onbeforeeditfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] VARIANT onbeforeeditfocus();
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATEVALUE), hidden, restricted] long readyStateValue();
    [id(DISPID_IHTMLELEMENT2_GETELEMENTSBYTAGNAME)] IHTMLElementCollection* getElementsByTagName([in] BSTR v);
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUENUMBER), hidden] long uniqueNumber();
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUEID), hidden] BSTR uniqueID();
    [propget, id(DISPID_IHTMLDOMNODE_NODETYPE)] long nodeType();
    [propget, id(DISPID_IHTMLDOMNODE_PARENTNODE)] IHTMLDOMNode* parentNode();
    [id(DISPID_IHTMLDOMNODE_HASCHILDNODES)] VARIANT_BOOL hasChildNodes();
    [propget, id(DISPID_IHTMLDOMNODE_CHILDNODES)] IDispatch* childNodes();
    [propget, id(DISPID_IHTMLDOMNODE_ATTRIBUTES)] IDispatch* attributes();
    [id(DISPID_IHTMLDOMNODE_INSERTBEFORE)] IHTMLDOMNode* insertBefore([in] IHTMLDOMNode* newChild,[optional, in] VARIANT refChild);
    [id(DISPID_IHTMLDOMNODE_REMOVECHILD)] IHTMLDOMNode* removeChild([in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_REPLACECHILD)] IHTMLDOMNode* replaceChild([in] IHTMLDOMNode* newChild,[in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_CLONENODE)] IHTMLDOMNode* cloneNode([in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_REMOVENODE)] IHTMLDOMNode* removeNode([defaultvalue(0), in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_SWAPNODE)] IHTMLDOMNode* swapNode([in] IHTMLDOMNode* otherNode);
    [id(DISPID_IHTMLDOMNODE_REPLACENODE)] IHTMLDOMNode* replaceNode([in] IHTMLDOMNode* replacement);
    [id(DISPID_IHTMLDOMNODE_APPENDCHILD)] IHTMLDOMNode* appendChild([in] IHTMLDOMNode* newChild);
    [propget, id(DISPID_IHTMLDOMNODE_NODENAME)] BSTR nodeName();
    [propput, id(DISPID_IHTMLDOMNODE_NODEVALUE)] void nodeValue(VARIANT v);
    [propget, id(DISPID_IHTMLDOMNODE_NODEVALUE)] VARIANT nodeValue();
    [propget, id(DISPID_IHTMLDOMNODE_FIRSTCHILD)] IHTMLDOMNode* firstChild();
    [propget, id(DISPID_IHTMLDOMNODE_LASTCHILD)] IHTMLDOMNode* lastChild();
    [propget, id(DISPID_IHTMLDOMNODE_PREVIOUSSIBLING)] IHTMLDOMNode* previousSibling();
    [propget, id(DISPID_IHTMLDOMNODE_NEXTSIBLING)] IHTMLDOMNode* nextSibling();
};
[
    uuid(3050f268-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLUnknownElement
{
    [default]           dispinterface DispHTMLUnknownElement;
    [source, default]   dispinterface HTMLElementEvents;
    [source]            dispinterface HTMLElementEvents2;
                        interface IHTMLElement;
                        interface IHTMLElement2;
                        interface IHTMLUniqueName;
                        interface IHTMLDOMNode;
                        interface IHTMLUnknownElement;
};
cpp_quote("EXTERN_C const GUID CLSID_CUnknownElement;")
[
    odl,
    oleautomation,
    dual,
    uuid(FECEAAA2-8405-11cf-8BA1-00AA00476DA6)
]
interface IOmHistory : IDispatch
{
    [propget, id(DISPID_IOMHISTORY_LENGTH)] HRESULT length([retval, out] short * p);
    [id(DISPID_IOMHISTORY_BACK)] HRESULT back([optional, in] VARIANT* pvargdistance);
    [id(DISPID_IOMHISTORY_FORWARD)] HRESULT forward([optional, in] VARIANT* pvargdistance);
    [id(DISPID_IOMHISTORY_GO)] HRESULT go([optional, in] VARIANT* pvargdistance);
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f3fc-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLMimeTypesCollection : IDispatch
{
    [propget, id(DISPID_IHTMLMIMETYPESCOLLECTION_LENGTH)] HRESULT length([retval, out] long * p);
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f3fd-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLPluginsCollection : IDispatch
{
    [propget, id(DISPID_IHTMLPLUGINSCOLLECTION_LENGTH)] HRESULT length([retval, out] long * p);
    [id(DISPID_IHTMLPLUGINSCOLLECTION_REFRESH)] HRESULT refresh([defaultvalue(0), in] VARIANT_BOOL reload);
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f401-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLOpsProfile : IDispatch
{
    [id(DISPID_IHTMLOPSPROFILE_ADDREQUEST)] HRESULT addRequest([in] BSTR name,[optional, in] VARIANT reserved,[retval, out] VARIANT_BOOL* success);
    [id(DISPID_IHTMLOPSPROFILE_CLEARREQUEST)] HRESULT clearRequest();
    [id(DISPID_IHTMLOPSPROFILE_DOREQUEST)] HRESULT doRequest([in] VARIANT usage,[optional, in] VARIANT fname,[optional, in] VARIANT domain,[optional, in] VARIANT path,[optional, in] VARIANT expire,[optional, in] VARIANT reserved);
    [id(DISPID_IHTMLOPSPROFILE_GETATTRIBUTE)] HRESULT getAttribute([in] BSTR name,[retval, out] BSTR* value);
    [id(DISPID_IHTMLOPSPROFILE_SETATTRIBUTE)] HRESULT setAttribute([in] BSTR name,[in] BSTR value,[optional, in] VARIANT prefs,[retval, out] VARIANT_BOOL* success);
    [id(DISPID_IHTMLOPSPROFILE_COMMITCHANGES)] HRESULT commitChanges([retval, out] VARIANT_BOOL* success);
    [id(DISPID_IHTMLOPSPROFILE_ADDREADREQUEST)] HRESULT addReadRequest([in] BSTR name,[optional, in] VARIANT reserved,[retval, out] VARIANT_BOOL* success);
    [id(DISPID_IHTMLOPSPROFILE_DOREADREQUEST)] HRESULT doReadRequest([in] VARIANT usage,[optional, in] VARIANT fname,[optional, in] VARIANT domain,[optional, in] VARIANT path,[optional, in] VARIANT expire,[optional, in] VARIANT reserved);
    [id(DISPID_IHTMLOPSPROFILE_DOWRITEREQUEST)] HRESULT doWriteRequest([retval, out] VARIANT_BOOL* success);
};
[
    odl,
    oleautomation,
    dual,
    uuid(FECEAAA5-8405-11cf-8BA1-00AA00476DA6)
]
interface IOmNavigator : IDispatch
{
    [propget, id(DISPID_IOMNAVIGATOR_APPCODENAME)] HRESULT appCodeName([retval, out] BSTR * p);
    [propget, id(DISPID_IOMNAVIGATOR_APPNAME)] HRESULT appName([retval, out] BSTR * p);
    [propget, id(DISPID_IOMNAVIGATOR_APPVERSION)] HRESULT appVersion([retval, out] BSTR * p);
    [propget, id(DISPID_IOMNAVIGATOR_USERAGENT)] HRESULT userAgent([retval, out] BSTR * p);
    [id(DISPID_IOMNAVIGATOR_JAVAENABLED)] HRESULT javaEnabled([retval, out] VARIANT_BOOL* enabled);
    [id(DISPID_IOMNAVIGATOR_TAINTENABLED)] HRESULT taintEnabled([retval, out] VARIANT_BOOL* enabled);
    [propget, id(DISPID_IOMNAVIGATOR_MIMETYPES)] HRESULT mimeTypes([retval, out] IHTMLMimeTypesCollection* * p);
    [propget, id(DISPID_IOMNAVIGATOR_PLUGINS)] HRESULT plugins([retval, out] IHTMLPluginsCollection* * p);
    [propget, id(DISPID_IOMNAVIGATOR_COOKIEENABLED)] HRESULT cookieEnabled([retval, out] VARIANT_BOOL * p);
    [propget, id(DISPID_IOMNAVIGATOR_OPSPROFILE)] HRESULT opsProfile([retval, out] IHTMLOpsProfile* * p);
    [id(DISPID_IOMNAVIGATOR_TOSTRING)] HRESULT toString([retval, out] BSTR* string);
    [propget, id(DISPID_IOMNAVIGATOR_CPUCLASS)] HRESULT cpuClass([retval, out] BSTR * p);
    [propget, id(DISPID_IOMNAVIGATOR_SYSTEMLANGUAGE)] HRESULT systemLanguage([retval, out] BSTR * p);
    [propget, id(DISPID_IOMNAVIGATOR_BROWSERLANGUAGE), hidden] HRESULT browserLanguage([retval, out] BSTR * p);
    [propget, id(DISPID_IOMNAVIGATOR_USERLANGUAGE)] HRESULT userLanguage([retval, out] BSTR * p);
    [propget, id(DISPID_IOMNAVIGATOR_PLATFORM)] HRESULT platform([retval, out] BSTR * p);
    [propget, id(DISPID_IOMNAVIGATOR_APPMINORVERSION)] HRESULT appMinorVersion([retval, out] BSTR * p);
    [propget, id(DISPID_IOMNAVIGATOR_CONNECTIONSPEED), hidden] HRESULT connectionSpeed([retval, out] long * p);
    [propget, id(DISPID_IOMNAVIGATOR_ONLINE)] HRESULT onLine([retval, out] VARIANT_BOOL * p);
    [propget, id(DISPID_IOMNAVIGATOR_USERPROFILE)] HRESULT userProfile([retval, out] IHTMLOpsProfile* * p);
};
[
    odl,
    oleautomation,
    dual,
    uuid(163BB1E0-6E00-11cf-837A-48DC04C10000)
]
interface IHTMLLocation : IDispatch
{
    [propput, id(DISPID_IHTMLLOCATION_HREF)] HRESULT href([in] BSTR v);
    [propget, id(DISPID_IHTMLLOCATION_HREF)] HRESULT href([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLLOCATION_PROTOCOL)] HRESULT protocol([in] BSTR v);
    [propget, id(DISPID_IHTMLLOCATION_PROTOCOL)] HRESULT protocol([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLLOCATION_HOST)] HRESULT host([in] BSTR v);
    [propget, id(DISPID_IHTMLLOCATION_HOST)] HRESULT host([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLLOCATION_HOSTNAME)] HRESULT hostname([in] BSTR v);
    [propget, id(DISPID_IHTMLLOCATION_HOSTNAME)] HRESULT hostname([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLLOCATION_PORT)] HRESULT port([in] BSTR v);
    [propget, id(DISPID_IHTMLLOCATION_PORT)] HRESULT port([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLLOCATION_PATHNAME)] HRESULT pathname([in] BSTR v);
    [propget, id(DISPID_IHTMLLOCATION_PATHNAME)] HRESULT pathname([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLLOCATION_SEARCH)] HRESULT search([in] BSTR v);
    [propget, id(DISPID_IHTMLLOCATION_SEARCH)] HRESULT search([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLLOCATION_HASH)] HRESULT hash([in] BSTR v);
    [propget, id(DISPID_IHTMLLOCATION_HASH)] HRESULT hash([retval, out] BSTR * p);
    [id(DISPID_IHTMLLOCATION_RELOAD)] HRESULT reload([defaultvalue(0), in] VARIANT_BOOL flag);
    [id(DISPID_IHTMLLOCATION_REPLACE)] HRESULT replace([in] BSTR bstr);
    [id(DISPID_IHTMLLOCATION_ASSIGN)] HRESULT assign([in] BSTR bstr);
    [id(DISPID_IHTMLLOCATION_TOSTRING)] HRESULT toString([retval, out] BSTR* string);
};
[
    uuid(FECEAAA3-8405-11cf-8BA1-00AA00476DA6)
]
coclass HTMLHistory
{
    [default]           interface IOmHistory;
};
cpp_quote("EXTERN_C const GUID CLSID_COmHistory;")
[
    uuid(3050f3fe-98b5-11cf-bb82-00aa00bdce0b)
]
coclass CMimeTypes
{
    [default]           interface IHTMLMimeTypesCollection;
};
cpp_quote("EXTERN_C const GUID CLSID_CMimeTypes;")
[
    uuid(3050f3ff-98b5-11cf-bb82-00aa00bdce0b)
]
coclass CPlugins
{
    [default]           interface IHTMLPluginsCollection;
};
cpp_quote("EXTERN_C const GUID CLSID_CPlugins;")
[
    uuid(3050f402-98b5-11cf-bb82-00aa00bdce0b)
]
coclass COpsProfile
{
    [default]           interface IHTMLOpsProfile;
};
cpp_quote("EXTERN_C const GUID CLSID_COpsProfile;")
[
    uuid(FECEAAA6-8405-11cf-8BA1-00AA00476DA6)
]
coclass HTMLNavigator
{
    [default]           interface IOmNavigator;
};
cpp_quote("EXTERN_C const GUID CLSID_COmNavigator;")
[
    uuid(163BB1E1-6E00-11cf-837A-48DC04C10000)
]
coclass HTMLLocation
{
    [default]           interface IHTMLLocation;
};
cpp_quote("EXTERN_C const GUID CLSID_COmLocation;")
[
    odl,
    oleautomation,
    dual,
    uuid(3050f4ce-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLBookmarkCollection : IDispatch
{
    [propget, id(DISPID_IHTMLBOOKMARKCOLLECTION_LENGTH), hidden] HRESULT length([retval, out] long * p);
    [propget, id(DISPID_IHTMLBOOKMARKCOLLECTION__NEWENUM), hidden, restricted] HRESULT _newEnum([retval, out] IUnknown* * p);
    [id(DISPID_IHTMLBOOKMARKCOLLECTION_ITEM)] HRESULT item([in] long index,[retval, out] VARIANT* pVarBookmark);
};
typedef enum _htmlPersistState
{
    htmlPersistStateNormal = 0,
    htmlPersistStateFavorite = 1,
    htmlPersistStateHistory = 2,
    htmlPersistStateSnapshot = 3,
    htmlPersistStateUserData = 4,
    htmlPersistState_Max = 2147483647L
} htmlPersistState;

typedef enum _htmlDropEffect
{
    htmlDropEffectCopy = 0,
    htmlDropEffectLink = 1,
    htmlDropEffectMove = 2,
    htmlDropEffectNone = 3,
    htmlDropEffect_Max = 2147483647L
} htmlDropEffect;

typedef enum _htmlEffectAllowed
{
    htmlEffectAllowedCopy = 0,
    htmlEffectAllowedLink = 1,
    htmlEffectAllowedMove = 2,
    htmlEffectAllowedCopyLink = 3,
    htmlEffectAllowedCopyMove = 4,
    htmlEffectAllowedLinkMove = 5,
    htmlEffectAllowedAll = 6,
    htmlEffectAllowedNone = 7,
    htmlEffectAllowedUninitialized = 8,
    htmlEffectAllowed_Max = 2147483647L
} htmlEffectAllowed;

[
    odl,
    oleautomation,
    dual,
    uuid(3050f4b3-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLDataTransfer : IDispatch
{
    [id(DISPID_IHTMLDATATRANSFER_SETDATA)] HRESULT setData([in] BSTR format,[in] VARIANT* data,[retval, out] VARIANT_BOOL* pret);
    [id(DISPID_IHTMLDATATRANSFER_GETDATA)] HRESULT getData([in] BSTR format,[retval, out] VARIANT* pvarRet);
    [id(DISPID_IHTMLDATATRANSFER_CLEARDATA)] HRESULT clearData([in] BSTR format,[retval, out] VARIANT_BOOL* pret);
    [propput, id(DISPID_IHTMLDATATRANSFER_DROPEFFECT)] HRESULT dropEffect([in] BSTR v);
    [propget, id(DISPID_IHTMLDATATRANSFER_DROPEFFECT)] HRESULT dropEffect([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLDATATRANSFER_EFFECTALLOWED)] HRESULT effectAllowed([in] BSTR v);
    [propget, id(DISPID_IHTMLDATATRANSFER_EFFECTALLOWED)] HRESULT effectAllowed([retval, out] BSTR * p);
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f32d-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLEventObj : IDispatch
{
    [propget, id(DISPID_IHTMLEVENTOBJ_SRCELEMENT)] HRESULT srcElement([retval, out] IHTMLElement* * p);
    [propget, id(DISPID_IHTMLEVENTOBJ_ALTKEY)] HRESULT altKey([retval, out] VARIANT_BOOL * p);
    [propget, id(DISPID_IHTMLEVENTOBJ_CTRLKEY)] HRESULT ctrlKey([retval, out] VARIANT_BOOL * p);
    [propget, id(DISPID_IHTMLEVENTOBJ_SHIFTKEY)] HRESULT shiftKey([retval, out] VARIANT_BOOL * p);
    [propput, id(DISPID_IHTMLEVENTOBJ_RETURNVALUE)] HRESULT returnValue([in] VARIANT v);
    [propget, id(DISPID_IHTMLEVENTOBJ_RETURNVALUE)] HRESULT returnValue([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLEVENTOBJ_CANCELBUBBLE)] HRESULT cancelBubble([in] VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLEVENTOBJ_CANCELBUBBLE)] HRESULT cancelBubble([retval, out] VARIANT_BOOL * p);
    [propget, id(DISPID_IHTMLEVENTOBJ_FROMELEMENT)] HRESULT fromElement([retval, out] IHTMLElement* * p);
    [propget, id(DISPID_IHTMLEVENTOBJ_TOELEMENT)] HRESULT toElement([retval, out] IHTMLElement* * p);
    [propput, id(DISPID_IHTMLEVENTOBJ_KEYCODE)] HRESULT keyCode([in] long v);
    [propget, id(DISPID_IHTMLEVENTOBJ_KEYCODE)] HRESULT keyCode([retval, out] long * p);
    [propget, id(DISPID_IHTMLEVENTOBJ_BUTTON)] HRESULT button([retval, out] long * p);
    [propget, id(DISPID_IHTMLEVENTOBJ_TYPE)] HRESULT type([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLEVENTOBJ_QUALIFIER)] HRESULT qualifier([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLEVENTOBJ_REASON)] HRESULT reason([retval, out] long * p);
    [propget, id(DISPID_IHTMLEVENTOBJ_X)] HRESULT x([retval, out] long * p);
    [propget, id(DISPID_IHTMLEVENTOBJ_Y)] HRESULT y([retval, out] long * p);
    [propget, id(DISPID_IHTMLEVENTOBJ_CLIENTX)] HRESULT clientX([retval, out] long * p);
    [propget, id(DISPID_IHTMLEVENTOBJ_CLIENTY)] HRESULT clientY([retval, out] long * p);
    [propget, id(DISPID_IHTMLEVENTOBJ_OFFSETX)] HRESULT offsetX([retval, out] long * p);
    [propget, id(DISPID_IHTMLEVENTOBJ_OFFSETY)] HRESULT offsetY([retval, out] long * p);
    [propget, id(DISPID_IHTMLEVENTOBJ_SCREENX)] HRESULT screenX([retval, out] long * p);
    [propget, id(DISPID_IHTMLEVENTOBJ_SCREENY)] HRESULT screenY([retval, out] long * p);
    [propget, id(DISPID_IHTMLEVENTOBJ_SRCFILTER)] HRESULT srcFilter([retval, out] IDispatch* * p);
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f48B-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLEventObj2 : IDispatch
{
    [id(DISPID_IHTMLEVENTOBJ2_SETATTRIBUTE)] HRESULT setAttribute([in] BSTR strAttributeName,[in] VARIANT AttributeValue,[defaultvalue(1), in] LONG lFlags);
    [id(DISPID_IHTMLEVENTOBJ2_GETATTRIBUTE)] HRESULT getAttribute([in] BSTR strAttributeName,[defaultvalue(0), in] LONG lFlags,[retval, out] VARIANT* AttributeValue);
    [id(DISPID_IHTMLEVENTOBJ2_REMOVEATTRIBUTE)] HRESULT removeAttribute([in] BSTR strAttributeName,[defaultvalue(1), in] LONG lFlags,[retval, out] VARIANT_BOOL* pfSuccess);
    [propput, id(DISPID_IHTMLEVENTOBJ2_PROPERTYNAME)] HRESULT propertyName([in] BSTR v);
    [propget, id(DISPID_IHTMLEVENTOBJ2_PROPERTYNAME)] HRESULT propertyName([retval, out] BSTR * p);
    [propputref, id(DISPID_IHTMLEVENTOBJ2_BOOKMARKS)] HRESULT bookmarks([in] IHTMLBookmarkCollection* v);
    [propget, id(DISPID_IHTMLEVENTOBJ2_BOOKMARKS)] HRESULT bookmarks([retval, out] IHTMLBookmarkCollection* * p);
    [propputref, id(DISPID_IHTMLEVENTOBJ2_RECORDSET)] HRESULT recordset([in] IDispatch* v);
    [propget, id(DISPID_IHTMLEVENTOBJ2_RECORDSET)] HRESULT recordset([retval, out] IDispatch* * p);
    [propput, id(DISPID_IHTMLEVENTOBJ2_DATAFLD)] HRESULT dataFld([in] BSTR v);
    [propget, id(DISPID_IHTMLEVENTOBJ2_DATAFLD)] HRESULT dataFld([retval, out] BSTR * p);
    [propputref, id(DISPID_IHTMLEVENTOBJ2_BOUNDELEMENTS)] HRESULT boundElements([in] IHTMLElementCollection* v);
    [propget, id(DISPID_IHTMLEVENTOBJ2_BOUNDELEMENTS)] HRESULT boundElements([retval, out] IHTMLElementCollection* * p);
    [propput, id(DISPID_IHTMLEVENTOBJ2_REPEAT)] HRESULT repeat([in] VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLEVENTOBJ2_REPEAT)] HRESULT repeat([retval, out] VARIANT_BOOL * p);
    [propput, id(DISPID_IHTMLEVENTOBJ2_SRCURN)] HRESULT srcUrn([in] BSTR v);
    [propget, id(DISPID_IHTMLEVENTOBJ2_SRCURN)] HRESULT srcUrn([retval, out] BSTR * p);
    [propputref, id(DISPID_IHTMLEVENTOBJ2_SRCELEMENT)] HRESULT srcElement([in] IHTMLElement* v);
    [propget, id(DISPID_IHTMLEVENTOBJ2_SRCELEMENT)] HRESULT srcElement([retval, out] IHTMLElement* * p);
    [propput, id(DISPID_IHTMLEVENTOBJ2_ALTKEY)] HRESULT altKey([in] VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLEVENTOBJ2_ALTKEY)] HRESULT altKey([retval, out] VARIANT_BOOL * p);
    [propput, id(DISPID_IHTMLEVENTOBJ2_CTRLKEY)] HRESULT ctrlKey([in] VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLEVENTOBJ2_CTRLKEY)] HRESULT ctrlKey([retval, out] VARIANT_BOOL * p);
    [propput, id(DISPID_IHTMLEVENTOBJ2_SHIFTKEY)] HRESULT shiftKey([in] VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLEVENTOBJ2_SHIFTKEY)] HRESULT shiftKey([retval, out] VARIANT_BOOL * p);
    [propputref, id(DISPID_IHTMLEVENTOBJ2_FROMELEMENT)] HRESULT fromElement([in] IHTMLElement* v);
    [propget, id(DISPID_IHTMLEVENTOBJ2_FROMELEMENT)] HRESULT fromElement([retval, out] IHTMLElement* * p);
    [propputref, id(DISPID_IHTMLEVENTOBJ2_TOELEMENT)] HRESULT toElement([in] IHTMLElement* v);
    [propget, id(DISPID_IHTMLEVENTOBJ2_TOELEMENT)] HRESULT toElement([retval, out] IHTMLElement* * p);
    [propput, id(DISPID_IHTMLEVENTOBJ2_BUTTON)] HRESULT button([in] long v);
    [propget, id(DISPID_IHTMLEVENTOBJ2_BUTTON)] HRESULT button([retval, out] long * p);
    [propput, id(DISPID_IHTMLEVENTOBJ2_TYPE)] HRESULT type([in] BSTR v);
    [propget, id(DISPID_IHTMLEVENTOBJ2_TYPE)] HRESULT type([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLEVENTOBJ2_QUALIFIER)] HRESULT qualifier([in] BSTR v);
    [propget, id(DISPID_IHTMLEVENTOBJ2_QUALIFIER)] HRESULT qualifier([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLEVENTOBJ2_REASON)] HRESULT reason([in] long v);
    [propget, id(DISPID_IHTMLEVENTOBJ2_REASON)] HRESULT reason([retval, out] long * p);
    [propput, id(DISPID_IHTMLEVENTOBJ2_X)] HRESULT x([in] long v);
    [propget, id(DISPID_IHTMLEVENTOBJ2_X)] HRESULT x([retval, out] long * p);
    [propput, id(DISPID_IHTMLEVENTOBJ2_Y)] HRESULT y([in] long v);
    [propget, id(DISPID_IHTMLEVENTOBJ2_Y)] HRESULT y([retval, out] long * p);
    [propput, id(DISPID_IHTMLEVENTOBJ2_CLIENTX)] HRESULT clientX([in] long v);
    [propget, id(DISPID_IHTMLEVENTOBJ2_CLIENTX)] HRESULT clientX([retval, out] long * p);
    [propput, id(DISPID_IHTMLEVENTOBJ2_CLIENTY)] HRESULT clientY([in] long v);
    [propget, id(DISPID_IHTMLEVENTOBJ2_CLIENTY)] HRESULT clientY([retval, out] long * p);
    [propput, id(DISPID_IHTMLEVENTOBJ2_OFFSETX)] HRESULT offsetX([in] long v);
    [propget, id(DISPID_IHTMLEVENTOBJ2_OFFSETX)] HRESULT offsetX([retval, out] long * p);
    [propput, id(DISPID_IHTMLEVENTOBJ2_OFFSETY)] HRESULT offsetY([in] long v);
    [propget, id(DISPID_IHTMLEVENTOBJ2_OFFSETY)] HRESULT offsetY([retval, out] long * p);
    [propput, id(DISPID_IHTMLEVENTOBJ2_SCREENX)] HRESULT screenX([in] long v);
    [propget, id(DISPID_IHTMLEVENTOBJ2_SCREENX)] HRESULT screenX([retval, out] long * p);
    [propput, id(DISPID_IHTMLEVENTOBJ2_SCREENY)] HRESULT screenY([in] long v);
    [propget, id(DISPID_IHTMLEVENTOBJ2_SCREENY)] HRESULT screenY([retval, out] long * p);
    [propputref, id(DISPID_IHTMLEVENTOBJ2_SRCFILTER)] HRESULT srcFilter([in] IDispatch* v);
    [propget, id(DISPID_IHTMLEVENTOBJ2_SRCFILTER)] HRESULT srcFilter([retval, out] IDispatch* * p);
    [propget, id(DISPID_IHTMLEVENTOBJ2_DATATRANSFER)] HRESULT dataTransfer([retval, out] IHTMLDataTransfer* * p);
};
[
    hidden,
    uuid(3050f558-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispCEventObj
{
properties:
methods:
    [propput, id(DISPID_IHTMLEVENTOBJ_RETURNVALUE)] void returnValue(VARIANT v);
    [propget, id(DISPID_IHTMLEVENTOBJ_RETURNVALUE)] VARIANT returnValue();
    [propput, id(DISPID_IHTMLEVENTOBJ_CANCELBUBBLE)] void cancelBubble(VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLEVENTOBJ_CANCELBUBBLE)] VARIANT_BOOL cancelBubble();
    [propput, id(DISPID_IHTMLEVENTOBJ_KEYCODE)] void keyCode(long v);
    [propget, id(DISPID_IHTMLEVENTOBJ_KEYCODE)] long keyCode();
    [id(DISPID_IHTMLEVENTOBJ2_SETATTRIBUTE)] void setAttribute([in] BSTR strAttributeName,[in] VARIANT AttributeValue,[defaultvalue(1), in] LONG lFlags);
    [id(DISPID_IHTMLEVENTOBJ2_GETATTRIBUTE)] VARIANT getAttribute([in] BSTR strAttributeName,[defaultvalue(0), in] LONG lFlags);
    [id(DISPID_IHTMLEVENTOBJ2_REMOVEATTRIBUTE)] VARIANT_BOOL removeAttribute([in] BSTR strAttributeName,[defaultvalue(1), in] LONG lFlags);
    [propput, id(DISPID_IHTMLEVENTOBJ2_PROPERTYNAME)] void propertyName(BSTR v);
    [propget, id(DISPID_IHTMLEVENTOBJ2_PROPERTYNAME)] BSTR propertyName();
    [propputref, id(DISPID_IHTMLEVENTOBJ2_BOOKMARKS)] void bookmarks(IHTMLBookmarkCollection* v);
    [propget, id(DISPID_IHTMLEVENTOBJ2_BOOKMARKS)] IHTMLBookmarkCollection* bookmarks();
    [propputref, id(DISPID_IHTMLEVENTOBJ2_RECORDSET)] void recordset(IDispatch* v);
    [propget, id(DISPID_IHTMLEVENTOBJ2_RECORDSET)] IDispatch* recordset();
    [propput, id(DISPID_IHTMLEVENTOBJ2_DATAFLD)] void dataFld(BSTR v);
    [propget, id(DISPID_IHTMLEVENTOBJ2_DATAFLD)] BSTR dataFld();
    [propputref, id(DISPID_IHTMLEVENTOBJ2_BOUNDELEMENTS)] void boundElements(IHTMLElementCollection* v);
    [propget, id(DISPID_IHTMLEVENTOBJ2_BOUNDELEMENTS)] IHTMLElementCollection* boundElements();
    [propput, id(DISPID_IHTMLEVENTOBJ2_REPEAT)] void repeat(VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLEVENTOBJ2_REPEAT)] VARIANT_BOOL repeat();
    [propput, id(DISPID_IHTMLEVENTOBJ2_SRCURN)] void srcUrn(BSTR v);
    [propget, id(DISPID_IHTMLEVENTOBJ2_SRCURN)] BSTR srcUrn();
    [propputref, id(DISPID_IHTMLEVENTOBJ2_SRCELEMENT)] void srcElement(IHTMLElement* v);
    [propget, id(DISPID_IHTMLEVENTOBJ2_SRCELEMENT)] IHTMLElement* srcElement();
    [propput, id(DISPID_IHTMLEVENTOBJ2_ALTKEY)] void altKey(VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLEVENTOBJ2_ALTKEY)] VARIANT_BOOL altKey();
    [propput, id(DISPID_IHTMLEVENTOBJ2_CTRLKEY)] void ctrlKey(VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLEVENTOBJ2_CTRLKEY)] VARIANT_BOOL ctrlKey();
    [propput, id(DISPID_IHTMLEVENTOBJ2_SHIFTKEY)] void shiftKey(VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLEVENTOBJ2_SHIFTKEY)] VARIANT_BOOL shiftKey();
    [propputref, id(DISPID_IHTMLEVENTOBJ2_FROMELEMENT)] void fromElement(IHTMLElement* v);
    [propget, id(DISPID_IHTMLEVENTOBJ2_FROMELEMENT)] IHTMLElement* fromElement();
    [propputref, id(DISPID_IHTMLEVENTOBJ2_TOELEMENT)] void toElement(IHTMLElement* v);
    [propget, id(DISPID_IHTMLEVENTOBJ2_TOELEMENT)] IHTMLElement* toElement();
    [propput, id(DISPID_IHTMLEVENTOBJ2_BUTTON)] void button(long v);
    [propget, id(DISPID_IHTMLEVENTOBJ2_BUTTON)] long button();
    [propput, id(DISPID_IHTMLEVENTOBJ2_TYPE)] void type(BSTR v);
    [propget, id(DISPID_IHTMLEVENTOBJ2_TYPE)] BSTR type();
    [propput, id(DISPID_IHTMLEVENTOBJ2_QUALIFIER)] void qualifier(BSTR v);
    [propget, id(DISPID_IHTMLEVENTOBJ2_QUALIFIER)] BSTR qualifier();
    [propput, id(DISPID_IHTMLEVENTOBJ2_REASON)] void reason(long v);
    [propget, id(DISPID_IHTMLEVENTOBJ2_REASON)] long reason();
    [propput, id(DISPID_IHTMLEVENTOBJ2_X)] void x(long v);
    [propget, id(DISPID_IHTMLEVENTOBJ2_X)] long x();
    [propput, id(DISPID_IHTMLEVENTOBJ2_Y)] void y(long v);
    [propget, id(DISPID_IHTMLEVENTOBJ2_Y)] long y();
    [propput, id(DISPID_IHTMLEVENTOBJ2_CLIENTX)] void clientX(long v);
    [propget, id(DISPID_IHTMLEVENTOBJ2_CLIENTX)] long clientX();
    [propput, id(DISPID_IHTMLEVENTOBJ2_CLIENTY)] void clientY(long v);
    [propget, id(DISPID_IHTMLEVENTOBJ2_CLIENTY)] long clientY();
    [propput, id(DISPID_IHTMLEVENTOBJ2_OFFSETX)] void offsetX(long v);
    [propget, id(DISPID_IHTMLEVENTOBJ2_OFFSETX)] long offsetX();
    [propput, id(DISPID_IHTMLEVENTOBJ2_OFFSETY)] void offsetY(long v);
    [propget, id(DISPID_IHTMLEVENTOBJ2_OFFSETY)] long offsetY();
    [propput, id(DISPID_IHTMLEVENTOBJ2_SCREENX)] void screenX(long v);
    [propget, id(DISPID_IHTMLEVENTOBJ2_SCREENX)] long screenX();
    [propput, id(DISPID_IHTMLEVENTOBJ2_SCREENY)] void screenY(long v);
    [propget, id(DISPID_IHTMLEVENTOBJ2_SCREENY)] long screenY();
    [propputref, id(DISPID_IHTMLEVENTOBJ2_SRCFILTER)] void srcFilter(IDispatch* v);
    [propget, id(DISPID_IHTMLEVENTOBJ2_SRCFILTER)] IDispatch* srcFilter();
    [propget, id(DISPID_IHTMLEVENTOBJ2_DATATRANSFER)] IHTMLDataTransfer* dataTransfer();
};
[
    uuid(3050f48A-98b5-11cf-bb82-00aa00bdce0b)
]
coclass CEventObj
{
    [default]           dispinterface DispCEventObj;
                        interface IHTMLEventObj;
                        interface IHTMLEventObj2;
};
cpp_quote("EXTERN_C const GUID CLSID_CEventObj;")
[
    hidden,
    uuid(3050f625-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface HTMLWindowEvents2
{
properties:
methods:
    [id(DISPID_HTMLWINDOWEVENTS2_ONLOAD)] void onload([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLWINDOWEVENTS2_ONUNLOAD)] void onunload([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLWINDOWEVENTS2_ONHELP)] VARIANT_BOOL onhelp([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLWINDOWEVENTS2_ONFOCUS)] void onfocus([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLWINDOWEVENTS2_ONBLUR)] void onblur([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLWINDOWEVENTS2_ONERROR)] void onerror([in] BSTR description,[in] BSTR url,[in] long line);
    [id(DISPID_HTMLWINDOWEVENTS2_ONRESIZE)] void onresize([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLWINDOWEVENTS2_ONSCROLL)] void onscroll([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLWINDOWEVENTS2_ONBEFOREUNLOAD)] void onbeforeunload([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLWINDOWEVENTS2_ONBEFOREPRINT)] void onbeforeprint([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLWINDOWEVENTS2_ONAFTERPRINT)] void onafterprint([in] IHTMLEventObj* pEvtObj);
};
[
    hidden,
    uuid(96A0A4E0-D062-11cf-94B6-00AA0060275C)
]
dispinterface HTMLWindowEvents
{
properties:
methods:
    [id(DISPID_HTMLWINDOWEVENTS_ONLOAD)] void onload();
    [id(DISPID_HTMLWINDOWEVENTS_ONUNLOAD)] void onunload();
    [id(DISPID_HTMLWINDOWEVENTS_ONHELP)] VARIANT_BOOL onhelp();
    [id(DISPID_HTMLWINDOWEVENTS_ONFOCUS)] void onfocus();
    [id(DISPID_HTMLWINDOWEVENTS_ONBLUR)] void onblur();
    [id(DISPID_HTMLWINDOWEVENTS_ONERROR)] void onerror([in] BSTR description,[in] BSTR url,[in] long line);
    [id(DISPID_HTMLWINDOWEVENTS_ONRESIZE)] void onresize();
    [id(DISPID_HTMLWINDOWEVENTS_ONSCROLL)] void onscroll();
    [id(DISPID_HTMLWINDOWEVENTS_ONBEFOREUNLOAD)] void onbeforeunload();
    [id(DISPID_HTMLWINDOWEVENTS_ONBEFOREPRINT)] void onbeforeprint();
    [id(DISPID_HTMLWINDOWEVENTS_ONAFTERPRINT)] void onafterprint();
};
interface IHTMLDocument;
interface IHTMLDocument2;
interface IHTMLFramesCollection2;
interface IHTMLOptionElementFactory;
interface IHTMLImageElementFactory;
interface IHTMLWindow2;
interface IHTMLWindow3;
interface IHTMLEventObj;
interface IHTMLDataTransfer;
[
    odl,
    oleautomation,
    dual,
    uuid(332c4426-26cb-11d0-b483-00c04fd90119)
]
interface IHTMLFramesCollection2 : IDispatch
{
    [id(DISPID_IHTMLFRAMESCOLLECTION2_ITEM)] HRESULT item([in] VARIANT* pvarIndex,[retval, out] VARIANT* pvarResult);
    [propget, id(DISPID_IHTMLFRAMESCOLLECTION2_LENGTH)] HRESULT length([retval, out] long * p);
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f35c-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLScreen : IDispatch
{
    [propget, id(DISPID_IHTMLSCREEN_COLORDEPTH)] HRESULT colorDepth([retval, out] long * p);
    [propput, id(DISPID_IHTMLSCREEN_BUFFERDEPTH)] HRESULT bufferDepth([in] long v);
    [propget, id(DISPID_IHTMLSCREEN_BUFFERDEPTH)] HRESULT bufferDepth([retval, out] long * p);
    [propget, id(DISPID_IHTMLSCREEN_WIDTH)] HRESULT width([retval, out] long * p);
    [propget, id(DISPID_IHTMLSCREEN_HEIGHT)] HRESULT height([retval, out] long * p);
    [propput, id(DISPID_IHTMLSCREEN_UPDATEINTERVAL)] HRESULT updateInterval([in] long v);
    [propget, id(DISPID_IHTMLSCREEN_UPDATEINTERVAL)] HRESULT updateInterval([retval, out] long * p);
    [propget, id(DISPID_IHTMLSCREEN_AVAILHEIGHT)] HRESULT availHeight([retval, out] long * p);
    [propget, id(DISPID_IHTMLSCREEN_AVAILWIDTH)] HRESULT availWidth([retval, out] long * p);
    [propget, id(DISPID_IHTMLSCREEN_FONTSMOOTHINGENABLED)] HRESULT fontSmoothingEnabled([retval, out] VARIANT_BOOL * p);
};
[
    odl,
    oleautomation,
    dual,
    uuid(332c4427-26cb-11d0-b483-00c04fd90119)
]
interface IHTMLWindow2 : IHTMLFramesCollection2
{
    [propget, id(DISPID_IHTMLWINDOW2_FRAMES)] HRESULT frames([retval, out] IHTMLFramesCollection2* * p);
    [propput, id(DISPID_IHTMLWINDOW2_DEFAULTSTATUS)] HRESULT defaultStatus([in] BSTR v);
    [propget, id(DISPID_IHTMLWINDOW2_DEFAULTSTATUS)] HRESULT defaultStatus([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLWINDOW2_STATUS)] HRESULT status([in] BSTR v);
    [propget, id(DISPID_IHTMLWINDOW2_STATUS)] HRESULT status([retval, out] BSTR * p);
    [id(DISPID_IHTMLWINDOW2_SETTIMEOUT)] HRESULT setTimeout([in] BSTR expression,[in] long msec,[optional, in] VARIANT* language,[retval, out] long* timerID);
    [id(DISPID_IHTMLWINDOW2_CLEARTIMEOUT)] HRESULT clearTimeout([in] long timerID);
    [id(DISPID_IHTMLWINDOW2_ALERT)] HRESULT alert([defaultvalue(""), in] BSTR message);
    [id(DISPID_IHTMLWINDOW2_CONFIRM)] HRESULT confirm([defaultvalue(""), in] BSTR message,[retval, out] VARIANT_BOOL* confirmed);
    [id(DISPID_IHTMLWINDOW2_PROMPT)] HRESULT prompt([defaultvalue(""), in] BSTR message,[defaultvalue("undefined"), in] BSTR defstr,[retval, out] VARIANT* textdata);
    [propget, id(DISPID_IHTMLWINDOW2_IMAGE)] HRESULT Image([retval, out] IHTMLImageElementFactory* * p);
    [propget, id(DISPID_IHTMLWINDOW2_LOCATION)] HRESULT location([retval, out] IHTMLLocation* * p);
    [propget, id(DISPID_IHTMLWINDOW2_HISTORY)] HRESULT history([retval, out] IOmHistory* * p);
    [id(DISPID_IHTMLWINDOW2_CLOSE)] HRESULT close();
    [propput, id(DISPID_IHTMLWINDOW2_OPENER)] HRESULT opener([in] VARIANT v);
    [propget, id(DISPID_IHTMLWINDOW2_OPENER)] HRESULT opener([retval, out] VARIANT * p);
    [propget, id(DISPID_IHTMLWINDOW2_NAVIGATOR)] HRESULT navigator([retval, out] IOmNavigator* * p);
    [propput, id(DISPID_IHTMLWINDOW2_NAME)] HRESULT name([in] BSTR v);
    [propget, id(DISPID_IHTMLWINDOW2_NAME)] HRESULT name([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLWINDOW2_PARENT)] HRESULT parent([retval, out] IHTMLWindow2* * p);
    [id(DISPID_IHTMLWINDOW2_OPEN)] HRESULT open([defaultvalue(""), in] BSTR url,[defaultvalue(""), in] BSTR name,[defaultvalue(""), in] BSTR features,[defaultvalue(0), in] VARIANT_BOOL replace,[retval, out] IHTMLWindow2** pomWindowResult);
    [propget, id(DISPID_IHTMLWINDOW2_SELF)] HRESULT self([retval, out] IHTMLWindow2* * p);
    [propget, id(DISPID_IHTMLWINDOW2_TOP)] HRESULT top([retval, out] IHTMLWindow2* * p);
    [propget, id(DISPID_IHTMLWINDOW2_WINDOW)] HRESULT window([retval, out] IHTMLWindow2* * p);
    [id(DISPID_IHTMLWINDOW2_NAVIGATE)] HRESULT navigate([in] BSTR url);
    [propput, id(DISPID_IHTMLWINDOW2_ONFOCUS), displaybind, bindable] HRESULT onfocus([in] VARIANT v);
    [propget, id(DISPID_IHTMLWINDOW2_ONFOCUS), displaybind, bindable] HRESULT onfocus([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLWINDOW2_ONBLUR), displaybind, bindable] HRESULT onblur([in] VARIANT v);
    [propget, id(DISPID_IHTMLWINDOW2_ONBLUR), displaybind, bindable] HRESULT onblur([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLWINDOW2_ONLOAD), displaybind, bindable] HRESULT onload([in] VARIANT v);
    [propget, id(DISPID_IHTMLWINDOW2_ONLOAD), displaybind, bindable] HRESULT onload([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLWINDOW2_ONBEFOREUNLOAD), displaybind, bindable] HRESULT onbeforeunload([in] VARIANT v);
    [propget, id(DISPID_IHTMLWINDOW2_ONBEFOREUNLOAD), displaybind, bindable] HRESULT onbeforeunload([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLWINDOW2_ONUNLOAD), displaybind, bindable] HRESULT onunload([in] VARIANT v);
    [propget, id(DISPID_IHTMLWINDOW2_ONUNLOAD), displaybind, bindable] HRESULT onunload([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLWINDOW2_ONHELP), displaybind, bindable] HRESULT onhelp([in] VARIANT v);
    [propget, id(DISPID_IHTMLWINDOW2_ONHELP), displaybind, bindable] HRESULT onhelp([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLWINDOW2_ONERROR), displaybind, bindable] HRESULT onerror([in] VARIANT v);
    [propget, id(DISPID_IHTMLWINDOW2_ONERROR), displaybind, bindable] HRESULT onerror([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLWINDOW2_ONRESIZE), displaybind, bindable] HRESULT onresize([in] VARIANT v);
    [propget, id(DISPID_IHTMLWINDOW2_ONRESIZE), displaybind, bindable] HRESULT onresize([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLWINDOW2_ONSCROLL), displaybind, bindable] HRESULT onscroll([in] VARIANT v);
    [propget, id(DISPID_IHTMLWINDOW2_ONSCROLL), displaybind, bindable] HRESULT onscroll([retval, out] VARIANT * p);
    [propget, id(DISPID_IHTMLWINDOW2_DOCUMENT), source] HRESULT document([retval, out] IHTMLDocument2* * p);
    [propget, id(DISPID_IHTMLWINDOW2_EVENT)] HRESULT event([retval, out] IHTMLEventObj* * p);
    [propget, id(DISPID_IHTMLWINDOW2__NEWENUM), hidden, restricted] HRESULT _newEnum([retval, out] IUnknown* * p);
    [id(DISPID_IHTMLWINDOW2_SHOWMODALDIALOG)] HRESULT showModalDialog([in] BSTR dialog,[optional, in] VARIANT* varArgIn,[optional, in] VARIANT* varOptions,[retval, out] VARIANT* varArgOut);
    [id(DISPID_IHTMLWINDOW2_SHOWHELP)] HRESULT showHelp([in] BSTR helpURL,[optional, in] VARIANT helpArg,[defaultvalue(""), in] BSTR features);
    [propget, id(DISPID_IHTMLWINDOW2_SCREEN)] HRESULT screen([retval, out] IHTMLScreen* * p);
    [propget, id(DISPID_IHTMLWINDOW2_OPTION)] HRESULT Option([retval, out] IHTMLOptionElementFactory* * p);
    [id(DISPID_IHTMLWINDOW2_FOCUS)] HRESULT focus();
    [propget, id(DISPID_IHTMLWINDOW2_CLOSED)] HRESULT closed([retval, out] VARIANT_BOOL * p);
    [id(DISPID_IHTMLWINDOW2_BLUR)] HRESULT blur();
    [id(DISPID_IHTMLWINDOW2_SCROLL)] HRESULT scroll([in] long x,[in] long y);
    [propget, id(DISPID_IHTMLWINDOW2_CLIENTINFORMATION)] HRESULT clientInformation([retval, out] IOmNavigator* * p);
    [id(DISPID_IHTMLWINDOW2_SETINTERVAL)] HRESULT setInterval([in] BSTR expression,[in] long msec,[optional, in] VARIANT* language,[retval, out] long* timerID);
    [id(DISPID_IHTMLWINDOW2_CLEARINTERVAL)] HRESULT clearInterval([in] long timerID);
    [propput, id(DISPID_IHTMLWINDOW2_OFFSCREENBUFFERING)] HRESULT offscreenBuffering([in] VARIANT v);
    [propget, id(DISPID_IHTMLWINDOW2_OFFSCREENBUFFERING)] HRESULT offscreenBuffering([retval, out] VARIANT * p);
    [id(DISPID_IHTMLWINDOW2_EXECSCRIPT)] HRESULT execScript([in] BSTR code,[defaultvalue("JScript"), in] BSTR language,[retval, out] VARIANT* pvarRet);
    [id(DISPID_IHTMLWINDOW2_TOSTRING)] HRESULT toString([retval, out] BSTR* String);
    [id(DISPID_IHTMLWINDOW2_SCROLLBY)] HRESULT scrollBy([in] long x,[in] long y);
    [id(DISPID_IHTMLWINDOW2_SCROLLTO)] HRESULT scrollTo([in] long x,[in] long y);
    [id(DISPID_IHTMLWINDOW2_MOVETO)] HRESULT moveTo([in] long x,[in] long y);
    [id(DISPID_IHTMLWINDOW2_MOVEBY)] HRESULT moveBy([in] long x,[in] long y);
    [id(DISPID_IHTMLWINDOW2_RESIZETO)] HRESULT resizeTo([in] long x,[in] long y);
    [id(DISPID_IHTMLWINDOW2_RESIZEBY)] HRESULT resizeBy([in] long x,[in] long y);
    [propget, id(DISPID_IHTMLWINDOW2_EXTERNAL)] HRESULT external([retval, out] IDispatch* * p);
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f4ae-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLWindow3 : IDispatch
{
    [propget, id(DISPID_IHTMLWINDOW3_SCREENLEFT)] HRESULT screenLeft([retval, out] long * p);
    [propget, id(DISPID_IHTMLWINDOW3_SCREENTOP)] HRESULT screenTop([retval, out] long * p);
    [id(DISPID_IHTMLWINDOW3_ATTACHEVENT)] HRESULT attachEvent([in] BSTR event,[in] IDispatch* pDisp,[retval, out] VARIANT_BOOL* pfResult);
    [id(DISPID_IHTMLWINDOW3_DETACHEVENT)] HRESULT detachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [id(DISPID_IHTMLWINDOW3_SETTIMEOUT)] HRESULT setTimeout([in] VARIANT* expression,[in] long msec,[optional, in] VARIANT* language,[retval, out] long* timerID);
    [id(DISPID_IHTMLWINDOW3_SETINTERVAL)] HRESULT setInterval([in] VARIANT* expression,[in] long msec,[optional, in] VARIANT* language,[retval, out] long* timerID);
    [id(DISPID_IHTMLWINDOW3_PRINT)] HRESULT print();
    [propput, id(DISPID_IHTMLWINDOW3_ONBEFOREPRINT), displaybind, bindable] HRESULT onbeforeprint([in] VARIANT v);
    [propget, id(DISPID_IHTMLWINDOW3_ONBEFOREPRINT), displaybind, bindable] HRESULT onbeforeprint([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLWINDOW3_ONAFTERPRINT), displaybind, bindable] HRESULT onafterprint([in] VARIANT v);
    [propget, id(DISPID_IHTMLWINDOW3_ONAFTERPRINT), displaybind, bindable] HRESULT onafterprint([retval, out] VARIANT * p);
    [propget, id(DISPID_IHTMLWINDOW3_CLIPBOARDDATA)] HRESULT clipboardData([retval, out] IHTMLDataTransfer* * p);
    [id(DISPID_IHTMLWINDOW3_SHOWMODELESSDIALOG)] HRESULT showModelessDialog([defaultvalue(""), in] BSTR url,[optional, in] VARIANT* varArgIn,[optional, in] VARIANT* options,[retval, out] IHTMLWindow2** pDialog);
};
[
    uuid(3050f35d-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLScreen
{
    [default]           interface IHTMLScreen;
};
cpp_quote("EXTERN_C const GUID CLSID_CScreen;")
[
    hidden,
    uuid(3050f55d-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTMLWindow2
{
properties:
methods:
    [id(DISPID_IHTMLFRAMESCOLLECTION2_ITEM)] VARIANT item([in] VARIANT* pvarIndex);
    [propget, id(DISPID_IHTMLFRAMESCOLLECTION2_LENGTH)] long length();
    [propget, id(DISPID_IHTMLWINDOW2_FRAMES)] IHTMLFramesCollection2* frames();
    [propput, id(DISPID_IHTMLWINDOW2_DEFAULTSTATUS)] void defaultStatus(BSTR v);
    [propget, id(DISPID_IHTMLWINDOW2_DEFAULTSTATUS)] BSTR defaultStatus();
    [propput, id(DISPID_IHTMLWINDOW2_STATUS)] void status(BSTR v);
    [propget, id(DISPID_IHTMLWINDOW2_STATUS)] BSTR status();
    [id(DISPID_IHTMLWINDOW2_CLEARTIMEOUT)] void clearTimeout([in] long timerID);
    [id(DISPID_IHTMLWINDOW2_ALERT)] void alert([defaultvalue(""), in] BSTR message);
    [id(DISPID_IHTMLWINDOW2_CONFIRM)] VARIANT_BOOL confirm([defaultvalue(""), in] BSTR message);
    [id(DISPID_IHTMLWINDOW2_PROMPT)] VARIANT prompt([defaultvalue(""), in] BSTR message,[defaultvalue("undefined"), in] BSTR defstr);
    [propget, id(DISPID_IHTMLWINDOW2_IMAGE)] IHTMLImageElementFactory* Image();
    [propget, id(DISPID_IHTMLWINDOW2_LOCATION)] IHTMLLocation* location();
    [propget, id(DISPID_IHTMLWINDOW2_HISTORY)] IOmHistory* history();
    [id(DISPID_IHTMLWINDOW2_CLOSE)] void close();
    [propput, id(DISPID_IHTMLWINDOW2_OPENER)] void opener(VARIANT v);
    [propget, id(DISPID_IHTMLWINDOW2_OPENER)] VARIANT opener();
    [propget, id(DISPID_IHTMLWINDOW2_NAVIGATOR)] IOmNavigator* navigator();
    [propput, id(DISPID_IHTMLWINDOW2_NAME)] void name(BSTR v);
    [propget, id(DISPID_IHTMLWINDOW2_NAME)] BSTR name();
    [propget, id(DISPID_IHTMLWINDOW2_PARENT)] IHTMLWindow2* parent();
    [id(DISPID_IHTMLWINDOW2_OPEN)] IHTMLWindow2* open([defaultvalue(""), in] BSTR url,[defaultvalue(""), in] BSTR name,[defaultvalue(""), in] BSTR features,[defaultvalue(0), in] VARIANT_BOOL replace);
    [propget, id(DISPID_IHTMLWINDOW2_SELF)] IHTMLWindow2* self();
    [propget, id(DISPID_IHTMLWINDOW2_TOP)] IHTMLWindow2* top();
    [propget, id(DISPID_IHTMLWINDOW2_WINDOW)] IHTMLWindow2* window();
    [id(DISPID_IHTMLWINDOW2_NAVIGATE)] void navigate([in] BSTR url);
    [propput, id(DISPID_IHTMLWINDOW2_ONFOCUS), displaybind, bindable] void onfocus(VARIANT v);
    [propget, id(DISPID_IHTMLWINDOW2_ONFOCUS), displaybind, bindable] VARIANT onfocus();
    [propput, id(DISPID_IHTMLWINDOW2_ONBLUR), displaybind, bindable] void onblur(VARIANT v);
    [propget, id(DISPID_IHTMLWINDOW2_ONBLUR), displaybind, bindable] VARIANT onblur();
    [propput, id(DISPID_IHTMLWINDOW2_ONLOAD), displaybind, bindable] void onload(VARIANT v);
    [propget, id(DISPID_IHTMLWINDOW2_ONLOAD), displaybind, bindable] VARIANT onload();
    [propput, id(DISPID_IHTMLWINDOW2_ONBEFOREUNLOAD), displaybind, bindable] void onbeforeunload(VARIANT v);
    [propget, id(DISPID_IHTMLWINDOW2_ONBEFOREUNLOAD), displaybind, bindable] VARIANT onbeforeunload();
    [propput, id(DISPID_IHTMLWINDOW2_ONUNLOAD), displaybind, bindable] void onunload(VARIANT v);
    [propget, id(DISPID_IHTMLWINDOW2_ONUNLOAD), displaybind, bindable] VARIANT onunload();
    [propput, id(DISPID_IHTMLWINDOW2_ONHELP), displaybind, bindable] void onhelp(VARIANT v);
    [propget, id(DISPID_IHTMLWINDOW2_ONHELP), displaybind, bindable] VARIANT onhelp();
    [propput, id(DISPID_IHTMLWINDOW2_ONERROR), displaybind, bindable] void onerror(VARIANT v);
    [propget, id(DISPID_IHTMLWINDOW2_ONERROR), displaybind, bindable] VARIANT onerror();
    [propput, id(DISPID_IHTMLWINDOW2_ONRESIZE), displaybind, bindable] void onresize(VARIANT v);
    [propget, id(DISPID_IHTMLWINDOW2_ONRESIZE), displaybind, bindable] VARIANT onresize();
    [propput, id(DISPID_IHTMLWINDOW2_ONSCROLL), displaybind, bindable] void onscroll(VARIANT v);
    [propget, id(DISPID_IHTMLWINDOW2_ONSCROLL), displaybind, bindable] VARIANT onscroll();
    [propget, id(DISPID_IHTMLWINDOW2_DOCUMENT), source] IHTMLDocument2* document();
    [propget, id(DISPID_IHTMLWINDOW2_EVENT)] IHTMLEventObj* event();
    [propget, id(DISPID_IHTMLWINDOW2__NEWENUM), hidden, restricted] IUnknown* _newEnum();
    [id(DISPID_IHTMLWINDOW2_SHOWMODALDIALOG)] VARIANT showModalDialog([in] BSTR dialog,[optional, in] VARIANT* varArgIn,[optional, in] VARIANT* varOptions);
    [id(DISPID_IHTMLWINDOW2_SHOWHELP)] void showHelp([in] BSTR helpURL,[optional, in] VARIANT helpArg,[defaultvalue(""), in] BSTR features);
    [propget, id(DISPID_IHTMLWINDOW2_SCREEN)] IHTMLScreen* screen();
    [propget, id(DISPID_IHTMLWINDOW2_OPTION)] IHTMLOptionElementFactory* Option();
    [id(DISPID_IHTMLWINDOW2_FOCUS)] void focus();
    [propget, id(DISPID_IHTMLWINDOW2_CLOSED)] VARIANT_BOOL closed();
    [id(DISPID_IHTMLWINDOW2_BLUR)] void blur();
    [id(DISPID_IHTMLWINDOW2_SCROLL)] void scroll([in] long x,[in] long y);
    [propget, id(DISPID_IHTMLWINDOW2_CLIENTINFORMATION)] IOmNavigator* clientInformation();
    [id(DISPID_IHTMLWINDOW2_CLEARINTERVAL)] void clearInterval([in] long timerID);
    [propput, id(DISPID_IHTMLWINDOW2_OFFSCREENBUFFERING)] void offscreenBuffering(VARIANT v);
    [propget, id(DISPID_IHTMLWINDOW2_OFFSCREENBUFFERING)] VARIANT offscreenBuffering();
    [id(DISPID_IHTMLWINDOW2_EXECSCRIPT)] VARIANT execScript([in] BSTR code,[defaultvalue("JScript"), in] BSTR language);
    [id(DISPID_IHTMLWINDOW2_TOSTRING)] BSTR toString();
    [id(DISPID_IHTMLWINDOW2_SCROLLBY)] void scrollBy([in] long x,[in] long y);
    [id(DISPID_IHTMLWINDOW2_SCROLLTO)] void scrollTo([in] long x,[in] long y);
    [id(DISPID_IHTMLWINDOW2_MOVETO)] void moveTo([in] long x,[in] long y);
    [id(DISPID_IHTMLWINDOW2_MOVEBY)] void moveBy([in] long x,[in] long y);
    [id(DISPID_IHTMLWINDOW2_RESIZETO)] void resizeTo([in] long x,[in] long y);
    [id(DISPID_IHTMLWINDOW2_RESIZEBY)] void resizeBy([in] long x,[in] long y);
    [propget, id(DISPID_IHTMLWINDOW2_EXTERNAL)] IDispatch* external();
    [propget, id(DISPID_IHTMLWINDOW3_SCREENLEFT)] long screenLeft();
    [propget, id(DISPID_IHTMLWINDOW3_SCREENTOP)] long screenTop();
    [id(DISPID_IHTMLWINDOW3_ATTACHEVENT)] VARIANT_BOOL attachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [id(DISPID_IHTMLWINDOW3_DETACHEVENT)] void detachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [id(DISPID_IHTMLWINDOW3_SETTIMEOUT)] long setTimeout([in] VARIANT* expression,[in] long msec,[optional, in] VARIANT* language);
    [id(DISPID_IHTMLWINDOW3_SETINTERVAL)] long setInterval([in] VARIANT* expression,[in] long msec,[optional, in] VARIANT* language);
    [id(DISPID_IHTMLWINDOW3_PRINT)] void print();
    [propput, id(DISPID_IHTMLWINDOW3_ONBEFOREPRINT), displaybind, bindable] void onbeforeprint(VARIANT v);
    [propget, id(DISPID_IHTMLWINDOW3_ONBEFOREPRINT), displaybind, bindable] VARIANT onbeforeprint();
    [propput, id(DISPID_IHTMLWINDOW3_ONAFTERPRINT), displaybind, bindable] void onafterprint(VARIANT v);
    [propget, id(DISPID_IHTMLWINDOW3_ONAFTERPRINT), displaybind, bindable] VARIANT onafterprint();
    [propget, id(DISPID_IHTMLWINDOW3_CLIPBOARDDATA)] IHTMLDataTransfer* clipboardData();
    [id(DISPID_IHTMLWINDOW3_SHOWMODELESSDIALOG)] IHTMLWindow2* showModelessDialog([defaultvalue(""), in] BSTR url,[optional, in] VARIANT* varArgIn,[optional, in] VARIANT* options);
};
[
    uuid(D48A6EC6-6A4A-11cf-94A7-444553540000)
]
coclass HTMLWindow2
{
    [default]           dispinterface DispHTMLWindow2;
    [source, default]   dispinterface HTMLWindowEvents;
    [source]            dispinterface HTMLWindowEvents2;
                        interface IHTMLWindow2;
                        interface IHTMLWindow3;
};
cpp_quote("EXTERN_C const GUID CLSID_COmWindow2;")
[
    hidden,
    uuid(3050f55e-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTMLWindowProxy
{
properties:
methods:
    [id(DISPID_IHTMLFRAMESCOLLECTION2_ITEM)] VARIANT item([in] VARIANT* pvarIndex);
    [propget, id(DISPID_IHTMLFRAMESCOLLECTION2_LENGTH)] long length();
    [propget, id(DISPID_IHTMLWINDOW2_FRAMES)] IHTMLFramesCollection2* frames();
    [propput, id(DISPID_IHTMLWINDOW2_DEFAULTSTATUS)] void defaultStatus(BSTR v);
    [propget, id(DISPID_IHTMLWINDOW2_DEFAULTSTATUS)] BSTR defaultStatus();
    [propput, id(DISPID_IHTMLWINDOW2_STATUS)] void status(BSTR v);
    [propget, id(DISPID_IHTMLWINDOW2_STATUS)] BSTR status();
    [id(DISPID_IHTMLWINDOW2_CLEARTIMEOUT)] void clearTimeout([in] long timerID);
    [id(DISPID_IHTMLWINDOW2_ALERT)] void alert([defaultvalue(""), in] BSTR message);
    [id(DISPID_IHTMLWINDOW2_CONFIRM)] VARIANT_BOOL confirm([defaultvalue(""), in] BSTR message);
    [id(DISPID_IHTMLWINDOW2_PROMPT)] VARIANT prompt([defaultvalue(""), in] BSTR message,[defaultvalue("undefined"), in] BSTR defstr);
    [propget, id(DISPID_IHTMLWINDOW2_IMAGE)] IHTMLImageElementFactory* Image();
    [propget, id(DISPID_IHTMLWINDOW2_LOCATION)] IHTMLLocation* location();
    [propget, id(DISPID_IHTMLWINDOW2_HISTORY)] IOmHistory* history();
    [id(DISPID_IHTMLWINDOW2_CLOSE)] void close();
    [propput, id(DISPID_IHTMLWINDOW2_OPENER)] void opener(VARIANT v);
    [propget, id(DISPID_IHTMLWINDOW2_OPENER)] VARIANT opener();
    [propget, id(DISPID_IHTMLWINDOW2_NAVIGATOR)] IOmNavigator* navigator();
    [propput, id(DISPID_IHTMLWINDOW2_NAME)] void name(BSTR v);
    [propget, id(DISPID_IHTMLWINDOW2_NAME)] BSTR name();
    [propget, id(DISPID_IHTMLWINDOW2_PARENT)] IHTMLWindow2* parent();
    [id(DISPID_IHTMLWINDOW2_OPEN)] IHTMLWindow2* open([defaultvalue(""), in] BSTR url,[defaultvalue(""), in] BSTR name,[defaultvalue(""), in] BSTR features,[defaultvalue(0), in] VARIANT_BOOL replace);
    [propget, id(DISPID_IHTMLWINDOW2_SELF)] IHTMLWindow2* self();
    [propget, id(DISPID_IHTMLWINDOW2_TOP)] IHTMLWindow2* top();
    [propget, id(DISPID_IHTMLWINDOW2_WINDOW)] IHTMLWindow2* window();
    [id(DISPID_IHTMLWINDOW2_NAVIGATE)] void navigate([in] BSTR url);
    [propput, id(DISPID_IHTMLWINDOW2_ONFOCUS), displaybind, bindable] void onfocus(VARIANT v);
    [propget, id(DISPID_IHTMLWINDOW2_ONFOCUS), displaybind, bindable] VARIANT onfocus();
    [propput, id(DISPID_IHTMLWINDOW2_ONBLUR), displaybind, bindable] void onblur(VARIANT v);
    [propget, id(DISPID_IHTMLWINDOW2_ONBLUR), displaybind, bindable] VARIANT onblur();
    [propput, id(DISPID_IHTMLWINDOW2_ONLOAD), displaybind, bindable] void onload(VARIANT v);
    [propget, id(DISPID_IHTMLWINDOW2_ONLOAD), displaybind, bindable] VARIANT onload();
    [propput, id(DISPID_IHTMLWINDOW2_ONBEFOREUNLOAD), displaybind, bindable] void onbeforeunload(VARIANT v);
    [propget, id(DISPID_IHTMLWINDOW2_ONBEFOREUNLOAD), displaybind, bindable] VARIANT onbeforeunload();
    [propput, id(DISPID_IHTMLWINDOW2_ONUNLOAD), displaybind, bindable] void onunload(VARIANT v);
    [propget, id(DISPID_IHTMLWINDOW2_ONUNLOAD), displaybind, bindable] VARIANT onunload();
    [propput, id(DISPID_IHTMLWINDOW2_ONHELP), displaybind, bindable] void onhelp(VARIANT v);
    [propget, id(DISPID_IHTMLWINDOW2_ONHELP), displaybind, bindable] VARIANT onhelp();
    [propput, id(DISPID_IHTMLWINDOW2_ONERROR), displaybind, bindable] void onerror(VARIANT v);
    [propget, id(DISPID_IHTMLWINDOW2_ONERROR), displaybind, bindable] VARIANT onerror();
    [propput, id(DISPID_IHTMLWINDOW2_ONRESIZE), displaybind, bindable] void onresize(VARIANT v);
    [propget, id(DISPID_IHTMLWINDOW2_ONRESIZE), displaybind, bindable] VARIANT onresize();
    [propput, id(DISPID_IHTMLWINDOW2_ONSCROLL), displaybind, bindable] void onscroll(VARIANT v);
    [propget, id(DISPID_IHTMLWINDOW2_ONSCROLL), displaybind, bindable] VARIANT onscroll();
    [propget, id(DISPID_IHTMLWINDOW2_DOCUMENT), source] IHTMLDocument2* document();
    [propget, id(DISPID_IHTMLWINDOW2_EVENT)] IHTMLEventObj* event();
    [propget, id(DISPID_IHTMLWINDOW2__NEWENUM), hidden, restricted] IUnknown* _newEnum();
    [id(DISPID_IHTMLWINDOW2_SHOWMODALDIALOG)] VARIANT showModalDialog([in] BSTR dialog,[optional, in] VARIANT* varArgIn,[optional, in] VARIANT* varOptions);
    [id(DISPID_IHTMLWINDOW2_SHOWHELP)] void showHelp([in] BSTR helpURL,[optional, in] VARIANT helpArg,[defaultvalue(""), in] BSTR features);
    [propget, id(DISPID_IHTMLWINDOW2_SCREEN)] IHTMLScreen* screen();
    [propget, id(DISPID_IHTMLWINDOW2_OPTION)] IHTMLOptionElementFactory* Option();
    [id(DISPID_IHTMLWINDOW2_FOCUS)] void focus();
    [propget, id(DISPID_IHTMLWINDOW2_CLOSED)] VARIANT_BOOL closed();
    [id(DISPID_IHTMLWINDOW2_BLUR)] void blur();
    [id(DISPID_IHTMLWINDOW2_SCROLL)] void scroll([in] long x,[in] long y);
    [propget, id(DISPID_IHTMLWINDOW2_CLIENTINFORMATION)] IOmNavigator* clientInformation();
    [id(DISPID_IHTMLWINDOW2_CLEARINTERVAL)] void clearInterval([in] long timerID);
    [propput, id(DISPID_IHTMLWINDOW2_OFFSCREENBUFFERING)] void offscreenBuffering(VARIANT v);
    [propget, id(DISPID_IHTMLWINDOW2_OFFSCREENBUFFERING)] VARIANT offscreenBuffering();
    [id(DISPID_IHTMLWINDOW2_EXECSCRIPT)] VARIANT execScript([in] BSTR code,[defaultvalue("JScript"), in] BSTR language);
    [id(DISPID_IHTMLWINDOW2_TOSTRING)] BSTR toString();
    [id(DISPID_IHTMLWINDOW2_SCROLLBY)] void scrollBy([in] long x,[in] long y);
    [id(DISPID_IHTMLWINDOW2_SCROLLTO)] void scrollTo([in] long x,[in] long y);
    [id(DISPID_IHTMLWINDOW2_MOVETO)] void moveTo([in] long x,[in] long y);
    [id(DISPID_IHTMLWINDOW2_MOVEBY)] void moveBy([in] long x,[in] long y);
    [id(DISPID_IHTMLWINDOW2_RESIZETO)] void resizeTo([in] long x,[in] long y);
    [id(DISPID_IHTMLWINDOW2_RESIZEBY)] void resizeBy([in] long x,[in] long y);
    [propget, id(DISPID_IHTMLWINDOW2_EXTERNAL)] IDispatch* external();
    [propget, id(DISPID_IHTMLWINDOW3_SCREENLEFT)] long screenLeft();
    [propget, id(DISPID_IHTMLWINDOW3_SCREENTOP)] long screenTop();
    [id(DISPID_IHTMLWINDOW3_ATTACHEVENT)] VARIANT_BOOL attachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [id(DISPID_IHTMLWINDOW3_DETACHEVENT)] void detachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [id(DISPID_IHTMLWINDOW3_SETTIMEOUT)] long setTimeout([in] VARIANT* expression,[in] long msec,[optional, in] VARIANT* language);
    [id(DISPID_IHTMLWINDOW3_SETINTERVAL)] long setInterval([in] VARIANT* expression,[in] long msec,[optional, in] VARIANT* language);
    [id(DISPID_IHTMLWINDOW3_PRINT)] void print();
    [propput, id(DISPID_IHTMLWINDOW3_ONBEFOREPRINT), displaybind, bindable] void onbeforeprint(VARIANT v);
    [propget, id(DISPID_IHTMLWINDOW3_ONBEFOREPRINT), displaybind, bindable] VARIANT onbeforeprint();
    [propput, id(DISPID_IHTMLWINDOW3_ONAFTERPRINT), displaybind, bindable] void onafterprint(VARIANT v);
    [propget, id(DISPID_IHTMLWINDOW3_ONAFTERPRINT), displaybind, bindable] VARIANT onafterprint();
    [propget, id(DISPID_IHTMLWINDOW3_CLIPBOARDDATA)] IHTMLDataTransfer* clipboardData();
    [id(DISPID_IHTMLWINDOW3_SHOWMODELESSDIALOG)] IHTMLWindow2* showModelessDialog([defaultvalue(""), in] BSTR url,[optional, in] VARIANT* varArgIn,[optional, in] VARIANT* options);
};
[
    uuid(3050f391-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLWindowProxy
{
    [default]           dispinterface DispHTMLWindowProxy;
    [source, default]   dispinterface HTMLWindowEvents;
    [source]            dispinterface HTMLWindowEvents2;
                        interface IHTMLWindow2;
                        interface IHTMLWindow3;
};
cpp_quote("EXTERN_C const GUID CLSID_COmWindowProxy;")
[
    hidden,
    uuid(3050f613-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface HTMLDocumentEvents2
{
properties:
methods:
    [id(DISPID_HTMLDOCUMENTEVENTS2_ONHELP)] VARIANT_BOOL onhelp([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLDOCUMENTEVENTS2_ONCLICK)] VARIANT_BOOL onclick([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLDOCUMENTEVENTS2_ONDBLCLICK)] VARIANT_BOOL ondblclick([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLDOCUMENTEVENTS2_ONKEYDOWN)] void onkeydown([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLDOCUMENTEVENTS2_ONKEYUP)] void onkeyup([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLDOCUMENTEVENTS2_ONKEYPRESS)] VARIANT_BOOL onkeypress([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLDOCUMENTEVENTS2_ONMOUSEDOWN)] void onmousedown([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLDOCUMENTEVENTS2_ONMOUSEMOVE)] void onmousemove([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLDOCUMENTEVENTS2_ONMOUSEUP)] void onmouseup([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLDOCUMENTEVENTS2_ONMOUSEOUT)] void onmouseout([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLDOCUMENTEVENTS2_ONMOUSEOVER)] void onmouseover([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLDOCUMENTEVENTS2_ONREADYSTATECHANGE)] void onreadystatechange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLDOCUMENTEVENTS2_ONBEFOREUPDATE)] VARIANT_BOOL onbeforeupdate([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLDOCUMENTEVENTS2_ONAFTERUPDATE)] void onafterupdate([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLDOCUMENTEVENTS2_ONROWEXIT)] VARIANT_BOOL onrowexit([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLDOCUMENTEVENTS2_ONROWENTER)] void onrowenter([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLDOCUMENTEVENTS2_ONDRAGSTART)] VARIANT_BOOL ondragstart([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLDOCUMENTEVENTS2_ONSELECTSTART)] VARIANT_BOOL onselectstart([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLDOCUMENTEVENTS2_ONERRORUPDATE)] VARIANT_BOOL onerrorupdate([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLDOCUMENTEVENTS2_ONCONTEXTMENU)] VARIANT_BOOL oncontextmenu([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLDOCUMENTEVENTS2_ONSTOP)] VARIANT_BOOL onstop([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLDOCUMENTEVENTS2_ONROWSDELETE)] void onrowsdelete([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLDOCUMENTEVENTS2_ONROWSINSERTED)] void onrowsinserted([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLDOCUMENTEVENTS2_ONCELLCHANGE)] void oncellchange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLDOCUMENTEVENTS2_ONPROPERTYCHANGE)] void onpropertychange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLDOCUMENTEVENTS2_ONDATASETCHANGED)] void ondatasetchanged([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLDOCUMENTEVENTS2_ONDATAAVAILABLE)] void ondataavailable([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLDOCUMENTEVENTS2_ONDATASETCOMPLETE)] void ondatasetcomplete([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLDOCUMENTEVENTS2_ONBEFOREEDITFOCUS)] void onbeforeeditfocus([in] IHTMLEventObj* pEvtObj);
};
[
    hidden,
    uuid(3050f260-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface HTMLDocumentEvents
{
properties:
methods:
    [id(DISPID_HTMLDOCUMENTEVENTS_ONHELP)] VARIANT_BOOL onhelp();
    [id(DISPID_HTMLDOCUMENTEVENTS_ONCLICK)] VARIANT_BOOL onclick();
    [id(DISPID_HTMLDOCUMENTEVENTS_ONDBLCLICK)] VARIANT_BOOL ondblclick();
    [id(DISPID_HTMLDOCUMENTEVENTS_ONKEYDOWN)] void onkeydown();
    [id(DISPID_HTMLDOCUMENTEVENTS_ONKEYUP)] void onkeyup();
    [id(DISPID_HTMLDOCUMENTEVENTS_ONKEYPRESS)] VARIANT_BOOL onkeypress();
    [id(DISPID_HTMLDOCUMENTEVENTS_ONMOUSEDOWN)] void onmousedown();
    [id(DISPID_HTMLDOCUMENTEVENTS_ONMOUSEMOVE)] void onmousemove();
    [id(DISPID_HTMLDOCUMENTEVENTS_ONMOUSEUP)] void onmouseup();
    [id(DISPID_HTMLDOCUMENTEVENTS_ONMOUSEOUT)] void onmouseout();
    [id(DISPID_HTMLDOCUMENTEVENTS_ONMOUSEOVER)] void onmouseover();
    [id(DISPID_HTMLDOCUMENTEVENTS_ONREADYSTATECHANGE)] void onreadystatechange();
    [id(DISPID_HTMLDOCUMENTEVENTS_ONBEFOREUPDATE)] VARIANT_BOOL onbeforeupdate();
    [id(DISPID_HTMLDOCUMENTEVENTS_ONAFTERUPDATE)] void onafterupdate();
    [id(DISPID_HTMLDOCUMENTEVENTS_ONROWEXIT)] VARIANT_BOOL onrowexit();
    [id(DISPID_HTMLDOCUMENTEVENTS_ONROWENTER)] void onrowenter();
    [id(DISPID_HTMLDOCUMENTEVENTS_ONDRAGSTART)] VARIANT_BOOL ondragstart();
    [id(DISPID_HTMLDOCUMENTEVENTS_ONSELECTSTART)] VARIANT_BOOL onselectstart();
    [id(DISPID_HTMLDOCUMENTEVENTS_ONERRORUPDATE)] VARIANT_BOOL onerrorupdate();
    [id(DISPID_HTMLDOCUMENTEVENTS_ONCONTEXTMENU)] VARIANT_BOOL oncontextmenu();
    [id(DISPID_HTMLDOCUMENTEVENTS_ONSTOP)] VARIANT_BOOL onstop();
    [id(DISPID_HTMLDOCUMENTEVENTS_ONROWSDELETE)] void onrowsdelete();
    [id(DISPID_HTMLDOCUMENTEVENTS_ONROWSINSERTED)] void onrowsinserted();
    [id(DISPID_HTMLDOCUMENTEVENTS_ONCELLCHANGE)] void oncellchange();
    [id(DISPID_HTMLDOCUMENTEVENTS_ONPROPERTYCHANGE)] void onpropertychange();
    [id(DISPID_HTMLDOCUMENTEVENTS_ONDATASETCHANGED)] void ondatasetchanged();
    [id(DISPID_HTMLDOCUMENTEVENTS_ONDATAAVAILABLE)] void ondataavailable();
    [id(DISPID_HTMLDOCUMENTEVENTS_ONDATASETCOMPLETE)] void ondatasetcomplete();
    [id(DISPID_HTMLDOCUMENTEVENTS_ONBEFOREEDITFOCUS)] void onbeforeeditfocus();
};
[
    odl,
    oleautomation,
    dual,
    uuid(626FC520-A41E-11cf-A731-00A0C9082637)
]
interface IHTMLDocument : IDispatch
{
    [propget, id(DISPID_IHTMLDOCUMENT_SCRIPT), hidden, nonbrowsable] HRESULT Script([retval, out] IDispatch* * p);
};
[
    odl,
    oleautomation,
    dual,
    uuid(332c4425-26cb-11d0-b483-00c04fd90119)
]
interface IHTMLDocument2 : IHTMLDocument
{
    [propget, id(DISPID_IHTMLDOCUMENT2_ALL)] HRESULT all([retval, out] IHTMLElementCollection* * p);
    [propget, id(DISPID_IHTMLDOCUMENT2_BODY)] HRESULT body([retval, out] IHTMLElement* * p);
    [propget, id(DISPID_IHTMLDOCUMENT2_ACTIVEELEMENT)] HRESULT activeElement([retval, out] IHTMLElement* * p);
    [propget, id(DISPID_IHTMLDOCUMENT2_IMAGES)] HRESULT images([retval, out] IHTMLElementCollection* * p);
    [propget, id(DISPID_IHTMLDOCUMENT2_APPLETS)] HRESULT applets([retval, out] IHTMLElementCollection* * p);
    [propget, id(DISPID_IHTMLDOCUMENT2_LINKS)] HRESULT links([retval, out] IHTMLElementCollection* * p);
    [propget, id(DISPID_IHTMLDOCUMENT2_FORMS)] HRESULT forms([retval, out] IHTMLElementCollection* * p);
    [propget, id(DISPID_IHTMLDOCUMENT2_ANCHORS)] HRESULT anchors([retval, out] IHTMLElementCollection* * p);
    [propput, id(DISPID_IHTMLDOCUMENT2_TITLE)] HRESULT title([in] BSTR v);
    [propget, id(DISPID_IHTMLDOCUMENT2_TITLE)] HRESULT title([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLDOCUMENT2_SCRIPTS)] HRESULT scripts([retval, out] IHTMLElementCollection* * p);
    [propput, id(DISPID_IHTMLDOCUMENT2_DESIGNMODE), hidden] HRESULT designMode([in] BSTR v);
    [propget, id(DISPID_IHTMLDOCUMENT2_DESIGNMODE), hidden] HRESULT designMode([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLDOCUMENT2_SELECTION)] HRESULT selection([retval, out] IHTMLSelectionObject* * p);
    [propget, id(DISPID_IHTMLDOCUMENT2_READYSTATE), bindable] HRESULT readyState([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLDOCUMENT2_FRAMES)] HRESULT frames([retval, out] IHTMLFramesCollection2* * p);
    [propget, id(DISPID_IHTMLDOCUMENT2_EMBEDS)] HRESULT embeds([retval, out] IHTMLElementCollection* * p);
    [propget, id(DISPID_IHTMLDOCUMENT2_PLUGINS)] HRESULT plugins([retval, out] IHTMLElementCollection* * p);
    [propput, id(DISPID_IHTMLDOCUMENT2_ALINKCOLOR)] HRESULT alinkColor([in] VARIANT v);
    [propget, id(DISPID_IHTMLDOCUMENT2_ALINKCOLOR)] HRESULT alinkColor([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLDOCUMENT2_BGCOLOR)] HRESULT bgColor([in] VARIANT v);
    [propget, id(DISPID_IHTMLDOCUMENT2_BGCOLOR)] HRESULT bgColor([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLDOCUMENT2_FGCOLOR)] HRESULT fgColor([in] VARIANT v);
    [propget, id(DISPID_IHTMLDOCUMENT2_FGCOLOR)] HRESULT fgColor([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLDOCUMENT2_LINKCOLOR)] HRESULT linkColor([in] VARIANT v);
    [propget, id(DISPID_IHTMLDOCUMENT2_LINKCOLOR)] HRESULT linkColor([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLDOCUMENT2_VLINKCOLOR)] HRESULT vlinkColor([in] VARIANT v);
    [propget, id(DISPID_IHTMLDOCUMENT2_VLINKCOLOR)] HRESULT vlinkColor([retval, out] VARIANT * p);
    [propget, id(DISPID_IHTMLDOCUMENT2_REFERRER)] HRESULT referrer([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLDOCUMENT2_LOCATION)] HRESULT location([retval, out] IHTMLLocation* * p);
    [propget, id(DISPID_IHTMLDOCUMENT2_LASTMODIFIED)] HRESULT lastModified([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLDOCUMENT2_URL)] HRESULT URL([in] BSTR v);
    [propget, id(DISPID_IHTMLDOCUMENT2_URL)] HRESULT URL([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLDOCUMENT2_DOMAIN)] HRESULT domain([in] BSTR v);
    [propget, id(DISPID_IHTMLDOCUMENT2_DOMAIN)] HRESULT domain([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLDOCUMENT2_COOKIE)] HRESULT cookie([in] BSTR v);
    [propget, id(DISPID_IHTMLDOCUMENT2_COOKIE)] HRESULT cookie([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLDOCUMENT2_EXPANDO), bindable, hidden] HRESULT expando([in] VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLDOCUMENT2_EXPANDO), bindable, hidden] HRESULT expando([retval, out] VARIANT_BOOL * p);
    [propput, id(DISPID_IHTMLDOCUMENT2_CHARSET), hidden] HRESULT charset([in] BSTR v);
    [propget, id(DISPID_IHTMLDOCUMENT2_CHARSET), hidden] HRESULT charset([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLDOCUMENT2_DEFAULTCHARSET)] HRESULT defaultCharset([in] BSTR v);
    [propget, id(DISPID_IHTMLDOCUMENT2_DEFAULTCHARSET)] HRESULT defaultCharset([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLDOCUMENT2_MIMETYPE)] HRESULT mimeType([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLDOCUMENT2_FILESIZE)] HRESULT fileSize([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLDOCUMENT2_FILECREATEDDATE)] HRESULT fileCreatedDate([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLDOCUMENT2_FILEMODIFIEDDATE)] HRESULT fileModifiedDate([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLDOCUMENT2_FILEUPDATEDDATE)] HRESULT fileUpdatedDate([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLDOCUMENT2_SECURITY)] HRESULT security([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLDOCUMENT2_PROTOCOL)] HRESULT protocol([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLDOCUMENT2_NAMEPROP)] HRESULT nameProp([retval, out] BSTR * p);
    [vararg,id(DISPID_IHTMLDOCUMENT2_WRITE)] HRESULT write([in] SAFEARRAY(VARIANT) psarray);
    [vararg,id(DISPID_IHTMLDOCUMENT2_WRITELN)] HRESULT writeln([in] SAFEARRAY(VARIANT) psarray);
    [id(DISPID_IHTMLDOCUMENT2_OPEN)] HRESULT open([defaultvalue("text/html"), in] BSTR url,[optional, in] VARIANT name,[optional, in] VARIANT features,[optional, in] VARIANT replace,[retval, out] IDispatch** pomWindowResult);
    [id(DISPID_IHTMLDOCUMENT2_CLOSE)] HRESULT close();
    [id(DISPID_IHTMLDOCUMENT2_CLEAR)] HRESULT clear();
    [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDSUPPORTED)] HRESULT queryCommandSupported([in] BSTR cmdID,[retval, out] VARIANT_BOOL* pfRet);
    [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDENABLED)] HRESULT queryCommandEnabled([in] BSTR cmdID,[retval, out] VARIANT_BOOL* pfRet);
    [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDSTATE)] HRESULT queryCommandState([in] BSTR cmdID,[retval, out] VARIANT_BOOL* pfRet);
    [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDINDETERM)] HRESULT queryCommandIndeterm([in] BSTR cmdID,[retval, out] VARIANT_BOOL* pfRet);
    [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDTEXT)] HRESULT queryCommandText([in] BSTR cmdID,[retval, out] BSTR* pcmdText);
    [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDVALUE)] HRESULT queryCommandValue([in] BSTR cmdID,[retval, out] VARIANT* pcmdValue);
    [id(DISPID_IHTMLDOCUMENT2_EXECCOMMAND)] HRESULT execCommand([in] BSTR cmdID,[defaultvalue(0), in] VARIANT_BOOL showUI,[optional, in] VARIANT value,[retval, out] VARIANT_BOOL* pfRet);
    [id(DISPID_IHTMLDOCUMENT2_EXECCOMMANDSHOWHELP)] HRESULT execCommandShowHelp([in] BSTR cmdID,[retval, out] VARIANT_BOOL* pfRet);
    [id(DISPID_IHTMLDOCUMENT2_CREATEELEMENT)] HRESULT createElement([in] BSTR eTag,[retval, out] IHTMLElement** newElem);
    [propput, id(DISPID_IHTMLDOCUMENT2_ONHELP), displaybind, bindable] HRESULT onhelp([in] VARIANT v);
    [propget, id(DISPID_IHTMLDOCUMENT2_ONHELP), displaybind, bindable] HRESULT onhelp([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLDOCUMENT2_ONCLICK), displaybind, bindable] HRESULT onclick([in] VARIANT v);
    [propget, id(DISPID_IHTMLDOCUMENT2_ONCLICK), displaybind, bindable] HRESULT onclick([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLDOCUMENT2_ONDBLCLICK), displaybind, bindable] HRESULT ondblclick([in] VARIANT v);
    [propget, id(DISPID_IHTMLDOCUMENT2_ONDBLCLICK), displaybind, bindable] HRESULT ondblclick([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLDOCUMENT2_ONKEYUP), displaybind, bindable] HRESULT onkeyup([in] VARIANT v);
    [propget, id(DISPID_IHTMLDOCUMENT2_ONKEYUP), displaybind, bindable] HRESULT onkeyup([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLDOCUMENT2_ONKEYDOWN), displaybind, bindable] HRESULT onkeydown([in] VARIANT v);
    [propget, id(DISPID_IHTMLDOCUMENT2_ONKEYDOWN), displaybind, bindable] HRESULT onkeydown([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLDOCUMENT2_ONKEYPRESS), displaybind, bindable] HRESULT onkeypress([in] VARIANT v);
    [propget, id(DISPID_IHTMLDOCUMENT2_ONKEYPRESS), displaybind, bindable] HRESULT onkeypress([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLDOCUMENT2_ONMOUSEUP), displaybind, bindable] HRESULT onmouseup([in] VARIANT v);
    [propget, id(DISPID_IHTMLDOCUMENT2_ONMOUSEUP), displaybind, bindable] HRESULT onmouseup([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLDOCUMENT2_ONMOUSEDOWN), displaybind, bindable] HRESULT onmousedown([in] VARIANT v);
    [propget, id(DISPID_IHTMLDOCUMENT2_ONMOUSEDOWN), displaybind, bindable] HRESULT onmousedown([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLDOCUMENT2_ONMOUSEMOVE), displaybind, bindable] HRESULT onmousemove([in] VARIANT v);
    [propget, id(DISPID_IHTMLDOCUMENT2_ONMOUSEMOVE), displaybind, bindable] HRESULT onmousemove([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLDOCUMENT2_ONMOUSEOUT), displaybind, bindable] HRESULT onmouseout([in] VARIANT v);
    [propget, id(DISPID_IHTMLDOCUMENT2_ONMOUSEOUT), displaybind, bindable] HRESULT onmouseout([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLDOCUMENT2_ONMOUSEOVER), displaybind, bindable] HRESULT onmouseover([in] VARIANT v);
    [propget, id(DISPID_IHTMLDOCUMENT2_ONMOUSEOVER), displaybind, bindable] HRESULT onmouseover([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLDOCUMENT2_ONREADYSTATECHANGE), displaybind, bindable] HRESULT onreadystatechange([in] VARIANT v);
    [propget, id(DISPID_IHTMLDOCUMENT2_ONREADYSTATECHANGE), displaybind, bindable] HRESULT onreadystatechange([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLDOCUMENT2_ONAFTERUPDATE), displaybind, bindable] HRESULT onafterupdate([in] VARIANT v);
    [propget, id(DISPID_IHTMLDOCUMENT2_ONAFTERUPDATE), displaybind, bindable] HRESULT onafterupdate([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLDOCUMENT2_ONROWEXIT), displaybind, bindable] HRESULT onrowexit([in] VARIANT v);
    [propget, id(DISPID_IHTMLDOCUMENT2_ONROWEXIT), displaybind, bindable] HRESULT onrowexit([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLDOCUMENT2_ONROWENTER), displaybind, bindable] HRESULT onrowenter([in] VARIANT v);
    [propget, id(DISPID_IHTMLDOCUMENT2_ONROWENTER), displaybind, bindable] HRESULT onrowenter([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLDOCUMENT2_ONDRAGSTART), displaybind, bindable] HRESULT ondragstart([in] VARIANT v);
    [propget, id(DISPID_IHTMLDOCUMENT2_ONDRAGSTART), displaybind, bindable] HRESULT ondragstart([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLDOCUMENT2_ONSELECTSTART), displaybind, bindable] HRESULT onselectstart([in] VARIANT v);
    [propget, id(DISPID_IHTMLDOCUMENT2_ONSELECTSTART), displaybind, bindable] HRESULT onselectstart([retval, out] VARIANT * p);
    [id(DISPID_IHTMLDOCUMENT2_ELEMENTFROMPOINT)] HRESULT elementFromPoint([in] long x,[in] long y,[retval, out] IHTMLElement** elementHit);
    [propget, id(DISPID_IHTMLDOCUMENT2_PARENTWINDOW)] HRESULT parentWindow([retval, out] IHTMLWindow2* * p);
    [propget, id(DISPID_IHTMLDOCUMENT2_STYLESHEETS)] HRESULT styleSheets([retval, out] IHTMLStyleSheetsCollection* * p);
    [propput, id(DISPID_IHTMLDOCUMENT2_ONBEFOREUPDATE), displaybind, bindable] HRESULT onbeforeupdate([in] VARIANT v);
    [propget, id(DISPID_IHTMLDOCUMENT2_ONBEFOREUPDATE), displaybind, bindable] HRESULT onbeforeupdate([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLDOCUMENT2_ONERRORUPDATE), displaybind, bindable] HRESULT onerrorupdate([in] VARIANT v);
    [propget, id(DISPID_IHTMLDOCUMENT2_ONERRORUPDATE), displaybind, bindable] HRESULT onerrorupdate([retval, out] VARIANT * p);
    [id(DISPID_IHTMLDOCUMENT2_TOSTRING)] HRESULT toString([retval, out] BSTR* String);
    [id(DISPID_IHTMLDOCUMENT2_CREATESTYLESHEET)] HRESULT createStyleSheet([defaultvalue(""), in] BSTR bstrHref,[defaultvalue(-1), in] long lIndex,[retval, out] IHTMLStyleSheet** ppnewStyleSheet);
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f485-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLDocument3 : IDispatch
{
    [id(DISPID_IHTMLDOCUMENT3_RELEASECAPTURE)] HRESULT releaseCapture();
    [id(DISPID_IHTMLDOCUMENT3_RECALC)] HRESULT recalc([defaultvalue(0), in] VARIANT_BOOL fForce);
    [id(DISPID_IHTMLDOCUMENT3_CREATETEXTNODE)] HRESULT createTextNode([in] BSTR text,[retval, out] IHTMLDOMNode** newTextNode);
    [propget, id(DISPID_IHTMLDOCUMENT3_DOCUMENTELEMENT)] HRESULT documentElement([retval, out] IHTMLElement* * p);
    [propget, id(DISPID_IHTMLDOCUMENT3_UNIQUEID), hidden] HRESULT uniqueID([retval, out] BSTR * p);
    [id(DISPID_IHTMLDOCUMENT3_ATTACHEVENT)] HRESULT attachEvent([in] BSTR event,[in] IDispatch* pDisp,[retval, out] VARIANT_BOOL* pfResult);
    [id(DISPID_IHTMLDOCUMENT3_DETACHEVENT)] HRESULT detachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [propput, id(DISPID_IHTMLDOCUMENT3_ONROWSDELETE), displaybind, bindable] HRESULT onrowsdelete([in] VARIANT v);
    [propget, id(DISPID_IHTMLDOCUMENT3_ONROWSDELETE), displaybind, bindable] HRESULT onrowsdelete([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLDOCUMENT3_ONROWSINSERTED), displaybind, bindable] HRESULT onrowsinserted([in] VARIANT v);
    [propget, id(DISPID_IHTMLDOCUMENT3_ONROWSINSERTED), displaybind, bindable] HRESULT onrowsinserted([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLDOCUMENT3_ONCELLCHANGE), displaybind, bindable] HRESULT oncellchange([in] VARIANT v);
    [propget, id(DISPID_IHTMLDOCUMENT3_ONCELLCHANGE), displaybind, bindable] HRESULT oncellchange([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLDOCUMENT3_ONDATASETCHANGED), displaybind, bindable] HRESULT ondatasetchanged([in] VARIANT v);
    [propget, id(DISPID_IHTMLDOCUMENT3_ONDATASETCHANGED), displaybind, bindable] HRESULT ondatasetchanged([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLDOCUMENT3_ONDATAAVAILABLE), displaybind, bindable] HRESULT ondataavailable([in] VARIANT v);
    [propget, id(DISPID_IHTMLDOCUMENT3_ONDATAAVAILABLE), displaybind, bindable] HRESULT ondataavailable([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLDOCUMENT3_ONDATASETCOMPLETE), displaybind, bindable] HRESULT ondatasetcomplete([in] VARIANT v);
    [propget, id(DISPID_IHTMLDOCUMENT3_ONDATASETCOMPLETE), displaybind, bindable] HRESULT ondatasetcomplete([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLDOCUMENT3_ONPROPERTYCHANGE), displaybind, bindable] HRESULT onpropertychange([in] VARIANT v);
    [propget, id(DISPID_IHTMLDOCUMENT3_ONPROPERTYCHANGE), displaybind, bindable] HRESULT onpropertychange([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLDOCUMENT3_DIR)] HRESULT dir([in] BSTR v);
    [propget, id(DISPID_IHTMLDOCUMENT3_DIR)] HRESULT dir([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLDOCUMENT3_ONCONTEXTMENU), displaybind, bindable] HRESULT oncontextmenu([in] VARIANT v);
    [propget, id(DISPID_IHTMLDOCUMENT3_ONCONTEXTMENU), displaybind, bindable] HRESULT oncontextmenu([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLDOCUMENT3_ONSTOP), displaybind, bindable] HRESULT onstop([in] VARIANT v);
    [propget, id(DISPID_IHTMLDOCUMENT3_ONSTOP), displaybind, bindable] HRESULT onstop([retval, out] VARIANT * p);
    [id(DISPID_IHTMLDOCUMENT3_CREATEDOCUMENTFRAGMENT)] HRESULT createDocumentFragment([retval, out] IHTMLDocument2** pNewDoc);
    [propget, id(DISPID_IHTMLDOCUMENT3_PARENTDOCUMENT), hidden, restricted] HRESULT parentDocument([retval, out] IHTMLDocument2* * p);
    [propput, id(DISPID_IHTMLDOCUMENT3_ENABLEDOWNLOAD), hidden, restricted] HRESULT enableDownload([in] VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLDOCUMENT3_ENABLEDOWNLOAD), hidden, restricted] HRESULT enableDownload([retval, out] VARIANT_BOOL * p);
    [propput, id(DISPID_IHTMLDOCUMENT3_BASEURL), hidden, restricted] HRESULT baseUrl([in] BSTR v);
    [propget, id(DISPID_IHTMLDOCUMENT3_BASEURL), hidden, restricted] HRESULT baseUrl([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLDOCUMENT3_CHILDNODES)] HRESULT childNodes([retval, out] IDispatch* * p);
    [propput, id(DISPID_IHTMLDOCUMENT3_INHERITSTYLESHEETS), hidden, restricted] HRESULT inheritStyleSheets([in] VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLDOCUMENT3_INHERITSTYLESHEETS), hidden, restricted] HRESULT inheritStyleSheets([retval, out] VARIANT_BOOL * p);
    [propput, id(DISPID_IHTMLDOCUMENT3_ONBEFOREEDITFOCUS), displaybind, bindable] HRESULT onbeforeeditfocus([in] VARIANT v);
    [propget, id(DISPID_IHTMLDOCUMENT3_ONBEFOREEDITFOCUS), displaybind, bindable] HRESULT onbeforeeditfocus([retval, out] VARIANT * p);
    [id(DISPID_IHTMLDOCUMENT3_GETELEMENTSBYNAME)] HRESULT getElementsByName([in] BSTR v,[retval, out] IHTMLElementCollection** pelColl);
    [id(DISPID_IHTMLDOCUMENT3_GETELEMENTBYID)] HRESULT getElementById([in] BSTR v,[retval, out] IHTMLElement** pel);
    [id(DISPID_IHTMLDOCUMENT3_GETELEMENTSBYTAGNAME)] HRESULT getElementsByTagName([in] BSTR v,[retval, out] IHTMLElementCollection** pelColl);
};
[
    hidden,
    uuid(3050f55f-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTMLDocument
{
properties:
methods:
    [propget, id(DISPID_IHTMLDOCUMENT_SCRIPT), hidden, nonbrowsable] IDispatch* Script();
    [propget, id(DISPID_IHTMLDOCUMENT2_ALL)] IHTMLElementCollection* all();
    [propget, id(DISPID_IHTMLDOCUMENT2_BODY)] IHTMLElement* body();
    [propget, id(DISPID_IHTMLDOCUMENT2_ACTIVEELEMENT)] IHTMLElement* activeElement();
    [propget, id(DISPID_IHTMLDOCUMENT2_IMAGES)] IHTMLElementCollection* images();
    [propget, id(DISPID_IHTMLDOCUMENT2_APPLETS)] IHTMLElementCollection* applets();
    [propget, id(DISPID_IHTMLDOCUMENT2_LINKS)] IHTMLElementCollection* links();
    [propget, id(DISPID_IHTMLDOCUMENT2_FORMS)] IHTMLElementCollection* forms();
    [propget, id(DISPID_IHTMLDOCUMENT2_ANCHORS)] IHTMLElementCollection* anchors();
    [propput, id(DISPID_IHTMLDOCUMENT2_TITLE)] void title(BSTR v);
    [propget, id(DISPID_IHTMLDOCUMENT2_TITLE)] BSTR title();
    [propget, id(DISPID_IHTMLDOCUMENT2_SCRIPTS)] IHTMLElementCollection* scripts();
    [propput, id(DISPID_IHTMLDOCUMENT2_DESIGNMODE), hidden] void designMode(BSTR v);
    [propget, id(DISPID_IHTMLDOCUMENT2_DESIGNMODE), hidden] BSTR designMode();
    [propget, id(DISPID_IHTMLDOCUMENT2_SELECTION)] IHTMLSelectionObject* selection();
    [propget, id(DISPID_IHTMLDOCUMENT2_READYSTATE), bindable] BSTR readyState();
    [propget, id(DISPID_IHTMLDOCUMENT2_FRAMES)] IHTMLFramesCollection2* frames();
    [propget, id(DISPID_IHTMLDOCUMENT2_EMBEDS)] IHTMLElementCollection* embeds();
    [propget, id(DISPID_IHTMLDOCUMENT2_PLUGINS)] IHTMLElementCollection* plugins();
    [propput, id(DISPID_IHTMLDOCUMENT2_ALINKCOLOR)] void alinkColor(VARIANT v);
    [propget, id(DISPID_IHTMLDOCUMENT2_ALINKCOLOR)] VARIANT alinkColor();
    [propput, id(DISPID_IHTMLDOCUMENT2_BGCOLOR)] void bgColor(VARIANT v);
    [propget, id(DISPID_IHTMLDOCUMENT2_BGCOLOR)] VARIANT bgColor();
    [propput, id(DISPID_IHTMLDOCUMENT2_FGCOLOR)] void fgColor(VARIANT v);
    [propget, id(DISPID_IHTMLDOCUMENT2_FGCOLOR)] VARIANT fgColor();
    [propput, id(DISPID_IHTMLDOCUMENT2_LINKCOLOR)] void linkColor(VARIANT v);
    [propget, id(DISPID_IHTMLDOCUMENT2_LINKCOLOR)] VARIANT linkColor();
    [propput, id(DISPID_IHTMLDOCUMENT2_VLINKCOLOR)] void vlinkColor(VARIANT v);
    [propget, id(DISPID_IHTMLDOCUMENT2_VLINKCOLOR)] VARIANT vlinkColor();
    [propget, id(DISPID_IHTMLDOCUMENT2_REFERRER)] BSTR referrer();
    [propget, id(DISPID_IHTMLDOCUMENT2_LOCATION)] IHTMLLocation* location();
    [propget, id(DISPID_IHTMLDOCUMENT2_LASTMODIFIED)] BSTR lastModified();
    [propput, id(DISPID_IHTMLDOCUMENT2_URL)] void URL(BSTR v);
    [propget, id(DISPID_IHTMLDOCUMENT2_URL)] BSTR URL();
    [propput, id(DISPID_IHTMLDOCUMENT2_DOMAIN)] void domain(BSTR v);
    [propget, id(DISPID_IHTMLDOCUMENT2_DOMAIN)] BSTR domain();
    [propput, id(DISPID_IHTMLDOCUMENT2_COOKIE)] void cookie(BSTR v);
    [propget, id(DISPID_IHTMLDOCUMENT2_COOKIE)] BSTR cookie();
    [propput, id(DISPID_IHTMLDOCUMENT2_EXPANDO), bindable, hidden] void expando(VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLDOCUMENT2_EXPANDO), bindable, hidden] VARIANT_BOOL expando();
    [propput, id(DISPID_IHTMLDOCUMENT2_CHARSET), hidden] void charset(BSTR v);
    [propget, id(DISPID_IHTMLDOCUMENT2_CHARSET), hidden] BSTR charset();
    [propput, id(DISPID_IHTMLDOCUMENT2_DEFAULTCHARSET)] void defaultCharset(BSTR v);
    [propget, id(DISPID_IHTMLDOCUMENT2_DEFAULTCHARSET)] BSTR defaultCharset();
    [propget, id(DISPID_IHTMLDOCUMENT2_MIMETYPE)] BSTR mimeType();
    [propget, id(DISPID_IHTMLDOCUMENT2_FILESIZE)] BSTR fileSize();
    [propget, id(DISPID_IHTMLDOCUMENT2_FILECREATEDDATE)] BSTR fileCreatedDate();
    [propget, id(DISPID_IHTMLDOCUMENT2_FILEMODIFIEDDATE)] BSTR fileModifiedDate();
    [propget, id(DISPID_IHTMLDOCUMENT2_FILEUPDATEDDATE)] BSTR fileUpdatedDate();
    [propget, id(DISPID_IHTMLDOCUMENT2_SECURITY)] BSTR security();
    [propget, id(DISPID_IHTMLDOCUMENT2_PROTOCOL)] BSTR protocol();
    [propget, id(DISPID_IHTMLDOCUMENT2_NAMEPROP)] BSTR nameProp();
    [vararg,id(DISPID_IHTMLDOCUMENT2_WRITE)] void write([in] SAFEARRAY(VARIANT) psarray);
    [vararg,id(DISPID_IHTMLDOCUMENT2_WRITELN)] void writeln([in] SAFEARRAY(VARIANT) psarray);
    [id(DISPID_IHTMLDOCUMENT2_OPEN)] IDispatch* open([defaultvalue("text/html"), in] BSTR url,[optional, in] VARIANT name,[optional, in] VARIANT features,[optional, in] VARIANT replace);
    [id(DISPID_IHTMLDOCUMENT2_CLOSE)] void close();
    [id(DISPID_IHTMLDOCUMENT2_CLEAR)] void clear();
    [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDSUPPORTED)] VARIANT_BOOL queryCommandSupported([in] BSTR cmdID);
    [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDENABLED)] VARIANT_BOOL queryCommandEnabled([in] BSTR cmdID);
    [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDSTATE)] VARIANT_BOOL queryCommandState([in] BSTR cmdID);
    [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDINDETERM)] VARIANT_BOOL queryCommandIndeterm([in] BSTR cmdID);
    [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDTEXT)] BSTR queryCommandText([in] BSTR cmdID);
    [id(DISPID_IHTMLDOCUMENT2_QUERYCOMMANDVALUE)] VARIANT queryCommandValue([in] BSTR cmdID);
    [id(DISPID_IHTMLDOCUMENT2_EXECCOMMAND)] VARIANT_BOOL execCommand([in] BSTR cmdID,[defaultvalue(0), in] VARIANT_BOOL showUI,[optional, in] VARIANT value);
    [id(DISPID_IHTMLDOCUMENT2_EXECCOMMANDSHOWHELP)] VARIANT_BOOL execCommandShowHelp([in] BSTR cmdID);
    [id(DISPID_IHTMLDOCUMENT2_CREATEELEMENT)] IHTMLElement* createElement([in] BSTR eTag);
    [propput, id(DISPID_IHTMLDOCUMENT2_ONHELP), displaybind, bindable] void onhelp(VARIANT v);
    [propget, id(DISPID_IHTMLDOCUMENT2_ONHELP), displaybind, bindable] VARIANT onhelp();
    [propput, id(DISPID_IHTMLDOCUMENT2_ONCLICK), displaybind, bindable] void onclick(VARIANT v);
    [propget, id(DISPID_IHTMLDOCUMENT2_ONCLICK), displaybind, bindable] VARIANT onclick();
    [propput, id(DISPID_IHTMLDOCUMENT2_ONDBLCLICK), displaybind, bindable] void ondblclick(VARIANT v);
    [propget, id(DISPID_IHTMLDOCUMENT2_ONDBLCLICK), displaybind, bindable] VARIANT ondblclick();
    [propput, id(DISPID_IHTMLDOCUMENT2_ONKEYUP), displaybind, bindable] void onkeyup(VARIANT v);
    [propget, id(DISPID_IHTMLDOCUMENT2_ONKEYUP), displaybind, bindable] VARIANT onkeyup();
    [propput, id(DISPID_IHTMLDOCUMENT2_ONKEYDOWN), displaybind, bindable] void onkeydown(VARIANT v);
    [propget, id(DISPID_IHTMLDOCUMENT2_ONKEYDOWN), displaybind, bindable] VARIANT onkeydown();
    [propput, id(DISPID_IHTMLDOCUMENT2_ONKEYPRESS), displaybind, bindable] void onkeypress(VARIANT v);
    [propget, id(DISPID_IHTMLDOCUMENT2_ONKEYPRESS), displaybind, bindable] VARIANT onkeypress();
    [propput, id(DISPID_IHTMLDOCUMENT2_ONMOUSEUP), displaybind, bindable] void onmouseup(VARIANT v);
    [propget, id(DISPID_IHTMLDOCUMENT2_ONMOUSEUP), displaybind, bindable] VARIANT onmouseup();
    [propput, id(DISPID_IHTMLDOCUMENT2_ONMOUSEDOWN), displaybind, bindable] void onmousedown(VARIANT v);
    [propget, id(DISPID_IHTMLDOCUMENT2_ONMOUSEDOWN), displaybind, bindable] VARIANT onmousedown();
    [propput, id(DISPID_IHTMLDOCUMENT2_ONMOUSEMOVE), displaybind, bindable] void onmousemove(VARIANT v);
    [propget, id(DISPID_IHTMLDOCUMENT2_ONMOUSEMOVE), displaybind, bindable] VARIANT onmousemove();
    [propput, id(DISPID_IHTMLDOCUMENT2_ONMOUSEOUT), displaybind, bindable] void onmouseout(VARIANT v);
    [propget, id(DISPID_IHTMLDOCUMENT2_ONMOUSEOUT), displaybind, bindable] VARIANT onmouseout();
    [propput, id(DISPID_IHTMLDOCUMENT2_ONMOUSEOVER), displaybind, bindable] void onmouseover(VARIANT v);
    [propget, id(DISPID_IHTMLDOCUMENT2_ONMOUSEOVER), displaybind, bindable] VARIANT onmouseover();
    [propput, id(DISPID_IHTMLDOCUMENT2_ONREADYSTATECHANGE), displaybind, bindable] void onreadystatechange(VARIANT v);
    [propget, id(DISPID_IHTMLDOCUMENT2_ONREADYSTATECHANGE), displaybind, bindable] VARIANT onreadystatechange();
    [propput, id(DISPID_IHTMLDOCUMENT2_ONAFTERUPDATE), displaybind, bindable] void onafterupdate(VARIANT v);
    [propget, id(DISPID_IHTMLDOCUMENT2_ONAFTERUPDATE), displaybind, bindable] VARIANT onafterupdate();
    [propput, id(DISPID_IHTMLDOCUMENT2_ONROWEXIT), displaybind, bindable] void onrowexit(VARIANT v);
    [propget, id(DISPID_IHTMLDOCUMENT2_ONROWEXIT), displaybind, bindable] VARIANT onrowexit();
    [propput, id(DISPID_IHTMLDOCUMENT2_ONROWENTER), displaybind, bindable] void onrowenter(VARIANT v);
    [propget, id(DISPID_IHTMLDOCUMENT2_ONROWENTER), displaybind, bindable] VARIANT onrowenter();
    [propput, id(DISPID_IHTMLDOCUMENT2_ONDRAGSTART), displaybind, bindable] void ondragstart(VARIANT v);
    [propget, id(DISPID_IHTMLDOCUMENT2_ONDRAGSTART), displaybind, bindable] VARIANT ondragstart();
    [propput, id(DISPID_IHTMLDOCUMENT2_ONSELECTSTART), displaybind, bindable] void onselectstart(VARIANT v);
    [propget, id(DISPID_IHTMLDOCUMENT2_ONSELECTSTART), displaybind, bindable] VARIANT onselectstart();
    [id(DISPID_IHTMLDOCUMENT2_ELEMENTFROMPOINT)] IHTMLElement* elementFromPoint([in] long x,[in] long y);
    [propget, id(DISPID_IHTMLDOCUMENT2_PARENTWINDOW)] IHTMLWindow2* parentWindow();
    [propget, id(DISPID_IHTMLDOCUMENT2_STYLESHEETS)] IHTMLStyleSheetsCollection* styleSheets();
    [propput, id(DISPID_IHTMLDOCUMENT2_ONBEFOREUPDATE), displaybind, bindable] void onbeforeupdate(VARIANT v);
    [propget, id(DISPID_IHTMLDOCUMENT2_ONBEFOREUPDATE), displaybind, bindable] VARIANT onbeforeupdate();
    [propput, id(DISPID_IHTMLDOCUMENT2_ONERRORUPDATE), displaybind, bindable] void onerrorupdate(VARIANT v);
    [propget, id(DISPID_IHTMLDOCUMENT2_ONERRORUPDATE), displaybind, bindable] VARIANT onerrorupdate();
    [id(DISPID_IHTMLDOCUMENT2_TOSTRING)] BSTR toString();
    [id(DISPID_IHTMLDOCUMENT2_CREATESTYLESHEET)] IHTMLStyleSheet* createStyleSheet([defaultvalue(""), in] BSTR bstrHref,[defaultvalue(-1), in] long lIndex);
    [id(DISPID_IHTMLDOCUMENT3_RELEASECAPTURE)] void releaseCapture();
    [id(DISPID_IHTMLDOCUMENT3_RECALC)] void recalc([defaultvalue(0), in] VARIANT_BOOL fForce);
    [id(DISPID_IHTMLDOCUMENT3_CREATETEXTNODE)] IHTMLDOMNode* createTextNode([in] BSTR text);
    [propget, id(DISPID_IHTMLDOCUMENT3_DOCUMENTELEMENT)] IHTMLElement* documentElement();
    [propget, id(DISPID_IHTMLDOCUMENT3_UNIQUEID), hidden] BSTR uniqueID();
    [id(DISPID_IHTMLDOCUMENT3_ATTACHEVENT)] VARIANT_BOOL attachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [id(DISPID_IHTMLDOCUMENT3_DETACHEVENT)] void detachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [propput, id(DISPID_IHTMLDOCUMENT3_ONROWSDELETE), displaybind, bindable] void onrowsdelete(VARIANT v);
    [propget, id(DISPID_IHTMLDOCUMENT3_ONROWSDELETE), displaybind, bindable] VARIANT onrowsdelete();
    [propput, id(DISPID_IHTMLDOCUMENT3_ONROWSINSERTED), displaybind, bindable] void onrowsinserted(VARIANT v);
    [propget, id(DISPID_IHTMLDOCUMENT3_ONROWSINSERTED), displaybind, bindable] VARIANT onrowsinserted();
    [propput, id(DISPID_IHTMLDOCUMENT3_ONCELLCHANGE), displaybind, bindable] void oncellchange(VARIANT v);
    [propget, id(DISPID_IHTMLDOCUMENT3_ONCELLCHANGE), displaybind, bindable] VARIANT oncellchange();
    [propput, id(DISPID_IHTMLDOCUMENT3_ONDATASETCHANGED), displaybind, bindable] void ondatasetchanged(VARIANT v);
    [propget, id(DISPID_IHTMLDOCUMENT3_ONDATASETCHANGED), displaybind, bindable] VARIANT ondatasetchanged();
    [propput, id(DISPID_IHTMLDOCUMENT3_ONDATAAVAILABLE), displaybind, bindable] void ondataavailable(VARIANT v);
    [propget, id(DISPID_IHTMLDOCUMENT3_ONDATAAVAILABLE), displaybind, bindable] VARIANT ondataavailable();
    [propput, id(DISPID_IHTMLDOCUMENT3_ONDATASETCOMPLETE), displaybind, bindable] void ondatasetcomplete(VARIANT v);
    [propget, id(DISPID_IHTMLDOCUMENT3_ONDATASETCOMPLETE), displaybind, bindable] VARIANT ondatasetcomplete();
    [propput, id(DISPID_IHTMLDOCUMENT3_ONPROPERTYCHANGE), displaybind, bindable] void onpropertychange(VARIANT v);
    [propget, id(DISPID_IHTMLDOCUMENT3_ONPROPERTYCHANGE), displaybind, bindable] VARIANT onpropertychange();
    [propput, id(DISPID_IHTMLDOCUMENT3_DIR)] void dir(BSTR v);
    [propget, id(DISPID_IHTMLDOCUMENT3_DIR)] BSTR dir();
    [propput, id(DISPID_IHTMLDOCUMENT3_ONCONTEXTMENU), displaybind, bindable] void oncontextmenu(VARIANT v);
    [propget, id(DISPID_IHTMLDOCUMENT3_ONCONTEXTMENU), displaybind, bindable] VARIANT oncontextmenu();
    [propput, id(DISPID_IHTMLDOCUMENT3_ONSTOP), displaybind, bindable] void onstop(VARIANT v);
    [propget, id(DISPID_IHTMLDOCUMENT3_ONSTOP), displaybind, bindable] VARIANT onstop();
    [id(DISPID_IHTMLDOCUMENT3_CREATEDOCUMENTFRAGMENT)] IHTMLDocument2* createDocumentFragment();
    [propget, id(DISPID_IHTMLDOCUMENT3_PARENTDOCUMENT), hidden, restricted] IHTMLDocument2* parentDocument();
    [propput, id(DISPID_IHTMLDOCUMENT3_ENABLEDOWNLOAD), hidden, restricted] void enableDownload(VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLDOCUMENT3_ENABLEDOWNLOAD), hidden, restricted] VARIANT_BOOL enableDownload();
    [propput, id(DISPID_IHTMLDOCUMENT3_BASEURL), hidden, restricted] void baseUrl(BSTR v);
    [propget, id(DISPID_IHTMLDOCUMENT3_BASEURL), hidden, restricted] BSTR baseUrl();
    [propget, id(DISPID_IHTMLDOCUMENT3_CHILDNODES)] IDispatch* childNodes();
    [propput, id(DISPID_IHTMLDOCUMENT3_INHERITSTYLESHEETS), hidden, restricted] void inheritStyleSheets(VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLDOCUMENT3_INHERITSTYLESHEETS), hidden, restricted] VARIANT_BOOL inheritStyleSheets();
    [propput, id(DISPID_IHTMLDOCUMENT3_ONBEFOREEDITFOCUS), displaybind, bindable] void onbeforeeditfocus(VARIANT v);
    [propget, id(DISPID_IHTMLDOCUMENT3_ONBEFOREEDITFOCUS), displaybind, bindable] VARIANT onbeforeeditfocus();
    [id(DISPID_IHTMLDOCUMENT3_GETELEMENTSBYNAME)] IHTMLElementCollection* getElementsByName([in] BSTR v);
    [id(DISPID_IHTMLDOCUMENT3_GETELEMENTBYID)] IHTMLElement* getElementById([in] BSTR v);
    [id(DISPID_IHTMLDOCUMENT3_GETELEMENTSBYTAGNAME)] IHTMLElementCollection* getElementsByTagName([in] BSTR v);
};
[
    uuid(25336920-03F9-11cf-8FD0-00AA00686F13)
]
coclass HTMLDocument
{
    [default]           dispinterface DispHTMLDocument;
    [source, default]   dispinterface HTMLDocumentEvents;
    [source]            dispinterface HTMLDocumentEvents2;
                        interface IHTMLDocument2;
                        interface IHTMLDocument3;
};
cpp_quote("EXTERN_C const GUID CLSID_CDoc;")
[
    odl,
    oleautomation,
    dual,
    uuid(3050f5e5-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLDocumentFragment : IDispatch
{
    [propget, id(DISPID_IHTMLDOCUMENTFRAGMENT_DOCUMENT)] HRESULT document([retval, out] IDispatch* * p);
};
[
    hidden,
    uuid(3050f581-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTMLDocumentFragment
{
properties:
methods:
    [propget, id(DISPID_IHTMLDOCUMENTFRAGMENT_DOCUMENT)] IDispatch* document();
};
[
    uuid(3050f5e6-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLDocumentFragment
{
    [default]           dispinterface DispHTMLDocumentFragment;
                        interface IHTMLDocumentFragment;
};
cpp_quote("EXTERN_C const GUID CLSID_CDocFrag;")
[
    hidden,
    uuid(A6D897FF-0A95-11d1-B0BA-006008166E11)
]
dispinterface DWebBridgeEvents
{
properties:
methods:
    [id(DISPID_DWEBBRIDGEEVENTS_ONSCRIPTLETEVENT)] void onscriptletevent([in] BSTR name,[in] VARIANT eventData);
    [id(DISPID_DWEBBRIDGEEVENTS_ONREADYSTATECHANGE)] void onreadystatechange();
    [id(DISPID_DWEBBRIDGEEVENTS_ONCLICK)] VARIANT_BOOL onclick();
    [id(DISPID_DWEBBRIDGEEVENTS_ONDBLCLICK)] VARIANT_BOOL ondblclick();
    [id(DISPID_DWEBBRIDGEEVENTS_ONKEYDOWN)] void onkeydown();
    [id(DISPID_DWEBBRIDGEEVENTS_ONKEYUP)] void onkeyup();
    [id(DISPID_DWEBBRIDGEEVENTS_ONKEYPRESS)] VARIANT_BOOL onkeypress();
    [id(DISPID_DWEBBRIDGEEVENTS_ONMOUSEDOWN)] void onmousedown();
    [id(DISPID_DWEBBRIDGEEVENTS_ONMOUSEMOVE)] void onmousemove();
    [id(DISPID_DWEBBRIDGEEVENTS_ONMOUSEUP)] void onmouseup();
};
[
    odl,
    oleautomation,
    dual,
    uuid(AE24FDAD-03C6-11D1-8B76-0080C744F389)
]
interface IWebBridge : IDispatch
{
    [propput, id(DISPID_IWEBBRIDGE_URL)] HRESULT URL([in] BSTR v);
    [propget, id(DISPID_IWEBBRIDGE_URL)] HRESULT URL([retval, out] BSTR * p);
    [propput, id(DISPID_IWEBBRIDGE_SCROLLBAR)] HRESULT Scrollbar([in] VARIANT_BOOL v);
    [propget, id(DISPID_IWEBBRIDGE_SCROLLBAR)] HRESULT Scrollbar([retval, out] VARIANT_BOOL * p);
    [propput, id(DISPID_IWEBBRIDGE_EMBED)] HRESULT embed([in] VARIANT_BOOL v);
    [propget, id(DISPID_IWEBBRIDGE_EMBED)] HRESULT embed([retval, out] VARIANT_BOOL * p);
    [propget, id(DISPID_IWEBBRIDGE_EVENT)] HRESULT event([retval, out] IDispatch* * p);
    [propget, id(DISPID_IWEBBRIDGE_READYSTATE)] HRESULT readyState([retval, out] long * p);
    [id(DISPID_IWEBBRIDGE_ABOUTBOX)] HRESULT AboutBox();
};
[
    odl,
    oleautomation,
    dual,
    uuid(A5170870-0CF8-11D1-8B91-0080C744F389)
]
interface IWBScriptControl : IDispatch
{
    [id(DISPID_IWBSCRIPTCONTROL_RAISEEVENT)] HRESULT raiseEvent([in] BSTR name,[in] VARIANT eventData);
    [id(DISPID_IWBSCRIPTCONTROL_BUBBLEEVENT)] HRESULT bubbleEvent();
    [id(DISPID_IWBSCRIPTCONTROL_SETCONTEXTMENU)] HRESULT setContextMenu([in] VARIANT menuItemPairs);
    [propput, id(DISPID_IWBSCRIPTCONTROL_SELECTABLECONTENT)] HRESULT selectableContent([in] VARIANT_BOOL v);
    [propget, id(DISPID_IWBSCRIPTCONTROL_SELECTABLECONTENT)] HRESULT selectableContent([retval, out] VARIANT_BOOL * p);
    [propget, id(DISPID_IWBSCRIPTCONTROL_FROZEN)] HRESULT frozen([retval, out] VARIANT_BOOL * p);
    [propput, id(DISPID_IWBSCRIPTCONTROL_SCROLLBAR)] HRESULT scrollbar([in] VARIANT_BOOL v);
    [propget, id(DISPID_IWBSCRIPTCONTROL_SCROLLBAR)] HRESULT scrollbar([retval, out] VARIANT_BOOL * p);
    [propget, id(DISPID_IWBSCRIPTCONTROL_VERSION)] HRESULT version([retval, out] BSTR * p);
    [propget, id(DISPID_IWBSCRIPTCONTROL_VISIBILITY)] HRESULT visibility([retval, out] VARIANT_BOOL * p);
    [propput, id(DISPID_IWBSCRIPTCONTROL_ONVISIBILITYCHANGE)] HRESULT onvisibilitychange([in] VARIANT v);
    [propget, id(DISPID_IWBSCRIPTCONTROL_ONVISIBILITYCHANGE)] HRESULT onvisibilitychange([retval, out] VARIANT * p);
};
[
    control,
    uuid(AE24FDAE-03C6-11D1-8B76-0080C744F389)
]
coclass Scriptlet
{
    [default]           interface IWebBridge;
    [source, default]   dispinterface DWebBridgeEvents;
};
cpp_quote("EXTERN_C const GUID CLSID_CScriptlet;")
typedef enum _BoolValue
{
    True = 1,
    False = 0,
    BoolValue_Max = 2147483647L
} BoolValue;

[
    odl,
    oleautomation,
    dual,
    uuid(3050f25f-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLEmbedElement : IDispatch
{
    [propput, id(DISPID_IHTMLEMBEDELEMENT_HIDDEN)] HRESULT hidden([in] BSTR v);
    [propget, id(DISPID_IHTMLEMBEDELEMENT_HIDDEN)] HRESULT hidden([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLEMBEDELEMENT_PALETTE)] HRESULT palette([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLEMBEDELEMENT_PLUGINSPAGE)] HRESULT pluginspage([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLEMBEDELEMENT_SRC)] HRESULT src([in] BSTR v);
    [propget, id(DISPID_IHTMLEMBEDELEMENT_SRC)] HRESULT src([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLEMBEDELEMENT_UNITS)] HRESULT units([in] BSTR v);
    [propget, id(DISPID_IHTMLEMBEDELEMENT_UNITS)] HRESULT units([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLEMBEDELEMENT_NAME), displaybind, bindable] HRESULT name([in] BSTR v);
    [propget, id(DISPID_IHTMLEMBEDELEMENT_NAME), displaybind, bindable] HRESULT name([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLEMBEDELEMENT_WIDTH)] HRESULT width([in] VARIANT v);
    [propget, id(DISPID_IHTMLEMBEDELEMENT_WIDTH)] HRESULT width([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLEMBEDELEMENT_HEIGHT)] HRESULT height([in] VARIANT v);
    [propget, id(DISPID_IHTMLEMBEDELEMENT_HEIGHT)] HRESULT height([retval, out] VARIANT * p);
};
[
    hidden,
    uuid(3050f52e-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTMLEmbed
{
properties:
methods:
    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)] void setAttribute([in] BSTR strAttributeName,[in] VARIANT AttributeValue,[defaultvalue(1), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)] VARIANT getAttribute([in] BSTR strAttributeName,[defaultvalue(0), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)] VARIANT_BOOL removeAttribute([in] BSTR strAttributeName,[defaultvalue(1), in] LONG lFlags);
    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] void className(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] BSTR className();
    [propput, id(DISPID_IHTMLELEMENT_ID), bindable] void id(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_ID), bindable] BSTR id();
    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)] BSTR tagName();
    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)] IHTMLElement* parentElement();
    [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable] IHTMLStyle* style();
    [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] void onhelp(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] VARIANT onhelp();
    [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] void onclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] VARIANT onclick();
    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] void ondblclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] VARIANT ondblclick();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] void onkeydown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] VARIANT onkeydown();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] void onkeyup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] VARIANT onkeyup();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] void onkeypress(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] VARIANT onkeypress();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] void onmouseout(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] VARIANT onmouseout();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] void onmouseover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] VARIANT onmouseover();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] void onmousemove(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] VARIANT onmousemove();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] void onmousedown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] VARIANT onmousedown();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] void onmouseup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] VARIANT onmouseup();
    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)] IDispatch* document();
    [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] void title(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] BSTR title();
    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] void language(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] BSTR language();
    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] void onselectstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] VARIANT onselectstart();
    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)] void scrollIntoView([optional, in] VARIANT varargStart);
    [id(DISPID_IHTMLELEMENT_CONTAINS)] VARIANT_BOOL contains([in] IHTMLElement* pChild);
    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable] long sourceIndex();
    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)] VARIANT recordNumber();
    [propput, id(DISPID_IHTMLELEMENT_LANG)] void lang(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANG)] BSTR lang();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)] long offsetLeft();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)] long offsetTop();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)] long offsetWidth();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)] long offsetHeight();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)] IHTMLElement* offsetParent();
    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)] void innerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)] BSTR innerHTML();
    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)] void innerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)] BSTR innerText();
    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)] void outerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)] BSTR outerHTML();
    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)] void outerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)] BSTR outerText();
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)] void insertAdjacentHTML([in] BSTR where,[in] BSTR html);
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)] void insertAdjacentText([in] BSTR where,[in] BSTR text);
    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)] IHTMLElement* parentTextEdit();
    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)] VARIANT_BOOL isTextEdit();
    [id(DISPID_IHTMLELEMENT_CLICK)] void click();
    [propget, id(DISPID_IHTMLELEMENT_FILTERS)] IHTMLFiltersCollection* filters();
    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] void ondragstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] VARIANT ondragstart();
    [id(DISPID_IHTMLELEMENT_TOSTRING)] BSTR toString();
    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] void onbeforeupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] VARIANT onbeforeupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] void onafterupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] VARIANT onafterupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] void onerrorupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] VARIANT onerrorupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] void onrowexit(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] VARIANT onrowexit();
    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] void onrowenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] VARIANT onrowenter();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] void ondatasetchanged(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] VARIANT ondatasetchanged();
    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] void ondataavailable(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] VARIANT ondataavailable();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] void ondatasetcomplete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] VARIANT ondatasetcomplete();
    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] void onfilterchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] VARIANT onfilterchange();
    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)] IDispatch* children();
    [propget, id(DISPID_IHTMLELEMENT_ALL)] IDispatch* all();
    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)] BSTR scopeName();
    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)] void setCapture([defaultvalue(-1), in] VARIANT_BOOL containerCapture);
    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)] void releaseCapture();
    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] void onlosecapture(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] VARIANT onlosecapture();
    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)] BSTR componentFromPoint([in] long x,[in] long y);
    [id(DISPID_IHTMLELEMENT2_DOSCROLL)] void doScroll([optional, in] VARIANT component);
    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] void onscroll(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] VARIANT onscroll();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] void ondrag(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] VARIANT ondrag();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] void ondragend(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] VARIANT ondragend();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] void ondragenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] VARIANT ondragenter();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] void ondragover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] VARIANT ondragover();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] void ondragleave(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] VARIANT ondragleave();
    [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] void ondrop(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] VARIANT ondrop();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] void onbeforecut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] VARIANT onbeforecut();
    [propput, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] void oncut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] VARIANT oncut();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] void onbeforecopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] VARIANT onbeforecopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] void oncopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] VARIANT oncopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] void onbeforepaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] VARIANT onbeforepaste();
    [propput, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] void onpaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] VARIANT onpaste();
    [propget, id(DISPID_IHTMLELEMENT2_CURRENTSTYLE), nonbrowsable] IHTMLCurrentStyle* currentStyle();
    [propput, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] void onpropertychange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] VARIANT onpropertychange();
    [id(DISPID_IHTMLELEMENT2_GETCLIENTRECTS)] IHTMLRectCollection* getClientRects();
    [id(DISPID_IHTMLELEMENT2_GETBOUNDINGCLIENTRECT)] IHTMLRect* getBoundingClientRect();
    [id(DISPID_IHTMLELEMENT2_SETEXPRESSION)] void setExpression([in] BSTR propname,[in] BSTR expression,[defaultvalue(""), in] BSTR language);
    [id(DISPID_IHTMLELEMENT2_GETEXPRESSION)] VARIANT getExpression([in] BSTR propname);
    [id(DISPID_IHTMLELEMENT2_REMOVEEXPRESSION)] VARIANT_BOOL removeExpression([in] BSTR propname);
    [propput, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] void tabIndex(short v);
    [propget, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] short tabIndex();
    [id(DISPID_IHTMLELEMENT2_FOCUS)] void focus();
    [propput, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] void accessKey(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] BSTR accessKey();
    [propput, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] void onblur(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] VARIANT onblur();
    [propput, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] void onfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] VARIANT onfocus();
    [propput, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] void onresize(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] VARIANT onresize();
    [id(DISPID_IHTMLELEMENT2_BLUR)] void blur();
    [id(DISPID_IHTMLELEMENT2_ADDFILTER)] void addFilter([in] IUnknown* pUnk);
    [id(DISPID_IHTMLELEMENT2_REMOVEFILTER)] void removeFilter([in] IUnknown* pUnk);
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTHEIGHT), displaybind, bindable] long clientHeight();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTWIDTH), displaybind, bindable] long clientWidth();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTTOP), displaybind, bindable] long clientTop();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTLEFT), displaybind, bindable] long clientLeft();
    [id(DISPID_IHTMLELEMENT2_ATTACHEVENT)] VARIANT_BOOL attachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [id(DISPID_IHTMLELEMENT2_DETACHEVENT)] void detachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATE)] VARIANT readyState();
    [propput, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] void onreadystatechange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] VARIANT onreadystatechange();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] void onrowsdelete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] VARIANT onrowsdelete();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] void onrowsinserted(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] VARIANT onrowsinserted();
    [propput, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] void oncellchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] VARIANT oncellchange();
    [propput, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] void dir(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] BSTR dir();
    [id(DISPID_IHTMLELEMENT2_CREATECONTROLRANGE)] IDispatch* createControlRange();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLHEIGHT), displaybind, bindable] long scrollHeight();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLWIDTH), displaybind, bindable] long scrollWidth();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] void scrollTop(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] long scrollTop();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] void scrollLeft(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] long scrollLeft();
    [id(DISPID_IHTMLELEMENT2_CLEARATTRIBUTES)] void clearAttributes();
    [id(DISPID_IHTMLELEMENT2_MERGEATTRIBUTES)] void mergeAttributes([in] IHTMLElement* mergeThis);
    [propput, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] void oncontextmenu(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] VARIANT oncontextmenu();
    [id(DISPID_IHTMLELEMENT2_INSERTADJACENTELEMENT)] IHTMLElement* insertAdjacentElement([in] BSTR where,[in] IHTMLElement* insertedElement);
    [id(DISPID_IHTMLELEMENT2_APPLYELEMENT)] IHTMLElement* applyElement([in] IHTMLElement* apply,[in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_GETADJACENTTEXT)] BSTR getAdjacentText([in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_REPLACEADJACENTTEXT)] BSTR replaceAdjacentText([in] BSTR where,[in] BSTR newText);
    [propget, id(DISPID_IHTMLELEMENT2_CANHAVECHILDREN)] VARIANT_BOOL canHaveChildren();
    [id(DISPID_IHTMLELEMENT2_ADDBEHAVIOR)] long addBehavior([in] BSTR bstrUrl,[optional, in] VARIANT* pvarFactory);
    [id(DISPID_IHTMLELEMENT2_REMOVEBEHAVIOR)] VARIANT_BOOL removeBehavior([in] long cookie);
    [propget, id(DISPID_IHTMLELEMENT2_RUNTIMESTYLE), nonbrowsable] IHTMLStyle* runtimeStyle();
    [propget, id(DISPID_IHTMLELEMENT2_BEHAVIORURNS)] IDispatch* behaviorUrns();
    [propput, id(DISPID_IHTMLELEMENT2_TAGURN)] void tagUrn(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_TAGURN)] BSTR tagUrn();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] void onbeforeeditfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] VARIANT onbeforeeditfocus();
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATEVALUE), hidden, restricted] long readyStateValue();
    [id(DISPID_IHTMLELEMENT2_GETELEMENTSBYTAGNAME)] IHTMLElementCollection* getElementsByTagName([in] BSTR v);
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUENUMBER), hidden] long uniqueNumber();
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUEID), hidden] BSTR uniqueID();
    [propget, id(DISPID_IHTMLDOMNODE_NODETYPE)] long nodeType();
    [propget, id(DISPID_IHTMLDOMNODE_PARENTNODE)] IHTMLDOMNode* parentNode();
    [id(DISPID_IHTMLDOMNODE_HASCHILDNODES)] VARIANT_BOOL hasChildNodes();
    [propget, id(DISPID_IHTMLDOMNODE_CHILDNODES)] IDispatch* childNodes();
    [propget, id(DISPID_IHTMLDOMNODE_ATTRIBUTES)] IDispatch* attributes();
    [id(DISPID_IHTMLDOMNODE_INSERTBEFORE)] IHTMLDOMNode* insertBefore([in] IHTMLDOMNode* newChild,[optional, in] VARIANT refChild);
    [id(DISPID_IHTMLDOMNODE_REMOVECHILD)] IHTMLDOMNode* removeChild([in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_REPLACECHILD)] IHTMLDOMNode* replaceChild([in] IHTMLDOMNode* newChild,[in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_CLONENODE)] IHTMLDOMNode* cloneNode([in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_REMOVENODE)] IHTMLDOMNode* removeNode([defaultvalue(0), in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_SWAPNODE)] IHTMLDOMNode* swapNode([in] IHTMLDOMNode* otherNode);
    [id(DISPID_IHTMLDOMNODE_REPLACENODE)] IHTMLDOMNode* replaceNode([in] IHTMLDOMNode* replacement);
    [id(DISPID_IHTMLDOMNODE_APPENDCHILD)] IHTMLDOMNode* appendChild([in] IHTMLDOMNode* newChild);
    [propget, id(DISPID_IHTMLDOMNODE_NODENAME)] BSTR nodeName();
    [propput, id(DISPID_IHTMLDOMNODE_NODEVALUE)] void nodeValue(VARIANT v);
    [propget, id(DISPID_IHTMLDOMNODE_NODEVALUE)] VARIANT nodeValue();
    [propget, id(DISPID_IHTMLDOMNODE_FIRSTCHILD)] IHTMLDOMNode* firstChild();
    [propget, id(DISPID_IHTMLDOMNODE_LASTCHILD)] IHTMLDOMNode* lastChild();
    [propget, id(DISPID_IHTMLDOMNODE_PREVIOUSSIBLING)] IHTMLDOMNode* previousSibling();
    [propget, id(DISPID_IHTMLDOMNODE_NEXTSIBLING)] IHTMLDOMNode* nextSibling();
    [propput, id(DISPID_IHTMLEMBEDELEMENT_HIDDEN)] void hidden(BSTR v);
    [propget, id(DISPID_IHTMLEMBEDELEMENT_HIDDEN)] BSTR hidden();
    [propget, id(DISPID_IHTMLEMBEDELEMENT_PALETTE)] BSTR palette();
    [propget, id(DISPID_IHTMLEMBEDELEMENT_PLUGINSPAGE)] BSTR pluginspage();
    [propput, id(DISPID_IHTMLEMBEDELEMENT_SRC)] void src(BSTR v);
    [propget, id(DISPID_IHTMLEMBEDELEMENT_SRC)] BSTR src();
    [propput, id(DISPID_IHTMLEMBEDELEMENT_UNITS)] void units(BSTR v);
    [propget, id(DISPID_IHTMLEMBEDELEMENT_UNITS)] BSTR units();
    [propput, id(DISPID_IHTMLEMBEDELEMENT_NAME), displaybind, bindable] void name(BSTR v);
    [propget, id(DISPID_IHTMLEMBEDELEMENT_NAME), displaybind, bindable] BSTR name();
    [propput, id(DISPID_IHTMLEMBEDELEMENT_WIDTH)] void width(VARIANT v);
    [propget, id(DISPID_IHTMLEMBEDELEMENT_WIDTH)] VARIANT width();
    [propput, id(DISPID_IHTMLEMBEDELEMENT_HEIGHT)] void height(VARIANT v);
    [propget, id(DISPID_IHTMLEMBEDELEMENT_HEIGHT)] VARIANT height();
};
[
    uuid(3050f25d-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLEmbed
{
    [default]           dispinterface DispHTMLEmbed;
    [source, default]   dispinterface HTMLControlElementEvents;
    [source]            dispinterface HTMLControlElementEvents2;
                        interface IHTMLElement;
                        interface IHTMLElement2;
                        interface IHTMLUniqueName;
                        interface IHTMLDOMNode;
                        interface IHTMLControlElement;
                        interface IHTMLEmbedElement;
};
cpp_quote("EXTERN_C const GUID CLSID_CPluginSite;")
[
    hidden,
    uuid(3050f61e-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface HTMLMapEvents2
{
properties:
methods:
    [id(DISPID_HTMLELEMENTEVENTS2_ONHELP)] VARIANT_BOOL onhelp([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCLICK)] VARIANT_BOOL onclick([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDBLCLICK)] VARIANT_BOOL ondblclick([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONKEYPRESS)] VARIANT_BOOL onkeypress([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONKEYDOWN)] void onkeydown([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONKEYUP)] void onkeyup([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEOUT)] void onmouseout([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEOVER)] void onmouseover([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEMOVE)] void onmousemove([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEDOWN)] void onmousedown([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEUP)] void onmouseup([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONSELECTSTART)] VARIANT_BOOL onselectstart([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONFILTERCHANGE)] void onfilterchange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGSTART)] VARIANT_BOOL ondragstart([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFOREUPDATE)] VARIANT_BOOL onbeforeupdate([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONAFTERUPDATE)] void onafterupdate([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONERRORUPDATE)] VARIANT_BOOL onerrorupdate([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWEXIT)] VARIANT_BOOL onrowexit([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWENTER)] void onrowenter([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDATASETCHANGED)] void ondatasetchanged([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDATAAVAILABLE)] void ondataavailable([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDATASETCOMPLETE)] void ondatasetcomplete([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONLOSECAPTURE)] void onlosecapture([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONPROPERTYCHANGE)] void onpropertychange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONSCROLL)] void onscroll([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONFOCUS)] void onfocus([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBLUR)] void onblur([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONRESIZE)] void onresize([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAG)] VARIANT_BOOL ondrag([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGEND)] void ondragend([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGENTER)] VARIANT_BOOL ondragenter([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGOVER)] VARIANT_BOOL ondragover([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGLEAVE)] void ondragleave([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDROP)] VARIANT_BOOL ondrop([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFORECUT)] VARIANT_BOOL onbeforecut([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCUT)] VARIANT_BOOL oncut([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFORECOPY)] VARIANT_BOOL onbeforecopy([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCOPY)] VARIANT_BOOL oncopy([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFOREPASTE)] VARIANT_BOOL onbeforepaste([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONPASTE)] VARIANT_BOOL onpaste([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCONTEXTMENU)] VARIANT_BOOL oncontextmenu([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWSDELETE)] void onrowsdelete([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWSINSERTED)] void onrowsinserted([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCELLCHANGE)] void oncellchange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONREADYSTATECHANGE)] void onreadystatechange([in] IHTMLEventObj* pEvtObj);
};
[
    hidden,
    uuid(3050f3ba-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface HTMLMapEvents
{
properties:
methods:
    [id(DISPID_HTMLELEMENTEVENTS_ONHELP)] VARIANT_BOOL onhelp();
    [id(DISPID_HTMLELEMENTEVENTS_ONCLICK)] VARIANT_BOOL onclick();
    [id(DISPID_HTMLELEMENTEVENTS_ONDBLCLICK)] VARIANT_BOOL ondblclick();
    [id(DISPID_HTMLELEMENTEVENTS_ONKEYPRESS)] VARIANT_BOOL onkeypress();
    [id(DISPID_HTMLELEMENTEVENTS_ONKEYDOWN)] void onkeydown();
    [id(DISPID_HTMLELEMENTEVENTS_ONKEYUP)] void onkeyup();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEOUT)] void onmouseout();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEOVER)] void onmouseover();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEMOVE)] void onmousemove();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEDOWN)] void onmousedown();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEUP)] void onmouseup();
    [id(DISPID_HTMLELEMENTEVENTS_ONSELECTSTART)] VARIANT_BOOL onselectstart();
    [id(DISPID_HTMLELEMENTEVENTS_ONFILTERCHANGE)] void onfilterchange();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGSTART)] VARIANT_BOOL ondragstart();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREUPDATE)] VARIANT_BOOL onbeforeupdate();
    [id(DISPID_HTMLELEMENTEVENTS_ONAFTERUPDATE)] void onafterupdate();
    [id(DISPID_HTMLELEMENTEVENTS_ONERRORUPDATE)] VARIANT_BOOL onerrorupdate();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWEXIT)] VARIANT_BOOL onrowexit();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWENTER)] void onrowenter();
    [id(DISPID_HTMLELEMENTEVENTS_ONDATASETCHANGED)] void ondatasetchanged();
    [id(DISPID_HTMLELEMENTEVENTS_ONDATAAVAILABLE)] void ondataavailable();
    [id(DISPID_HTMLELEMENTEVENTS_ONDATASETCOMPLETE)] void ondatasetcomplete();
    [id(DISPID_HTMLELEMENTEVENTS_ONLOSECAPTURE)] void onlosecapture();
    [id(DISPID_HTMLELEMENTEVENTS_ONPROPERTYCHANGE)] void onpropertychange();
    [id(DISPID_HTMLELEMENTEVENTS_ONSCROLL)] void onscroll();
    [id(DISPID_HTMLELEMENTEVENTS_ONFOCUS)] void onfocus();
    [id(DISPID_HTMLELEMENTEVENTS_ONBLUR)] void onblur();
    [id(DISPID_HTMLELEMENTEVENTS_ONRESIZE)] void onresize();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAG)] VARIANT_BOOL ondrag();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGEND)] void ondragend();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGENTER)] VARIANT_BOOL ondragenter();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGOVER)] VARIANT_BOOL ondragover();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGLEAVE)] void ondragleave();
    [id(DISPID_HTMLELEMENTEVENTS_ONDROP)] VARIANT_BOOL ondrop();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFORECUT)] VARIANT_BOOL onbeforecut();
    [id(DISPID_HTMLELEMENTEVENTS_ONCUT)] VARIANT_BOOL oncut();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFORECOPY)] VARIANT_BOOL onbeforecopy();
    [id(DISPID_HTMLELEMENTEVENTS_ONCOPY)] VARIANT_BOOL oncopy();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREPASTE)] VARIANT_BOOL onbeforepaste();
    [id(DISPID_HTMLELEMENTEVENTS_ONPASTE)] VARIANT_BOOL onpaste();
    [id(DISPID_HTMLELEMENTEVENTS_ONCONTEXTMENU)] VARIANT_BOOL oncontextmenu();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWSDELETE)] void onrowsdelete();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWSINSERTED)] void onrowsinserted();
    [id(DISPID_HTMLELEMENTEVENTS_ONCELLCHANGE)] void oncellchange();
    [id(DISPID_HTMLELEMENTEVENTS_ONREADYSTATECHANGE)] void onreadystatechange();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREEDITFOCUS)] void onbeforeeditfocus();
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f383-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLAreasCollection : IDispatch
{
    [propput, id(DISPID_IHTMLAREASCOLLECTION_LENGTH)] HRESULT length([in] long v);
    [propget, id(DISPID_IHTMLAREASCOLLECTION_LENGTH)] HRESULT length([retval, out] long * p);
    [propget, id(DISPID_IHTMLAREASCOLLECTION__NEWENUM), hidden, restricted] HRESULT _newEnum([retval, out] IUnknown* * p);
    [id(DISPID_IHTMLAREASCOLLECTION_ITEM)] HRESULT item([optional, in] VARIANT name,[optional, in] VARIANT index,[retval, out] IDispatch** pdisp);
    [id(DISPID_IHTMLAREASCOLLECTION_TAGS)] HRESULT tags([in] VARIANT tagName,[retval, out] IDispatch** pdisp);
    [id(DISPID_IHTMLAREASCOLLECTION_ADD)] HRESULT add([in] IHTMLElement* element,[optional, in] VARIANT before);
    [id(DISPID_IHTMLAREASCOLLECTION_REMOVE)] HRESULT remove([defaultvalue(-1), in] long index);
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f5ec-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLAreasCollection2 : IDispatch
{
    [id(DISPID_IHTMLAREASCOLLECTION2_URNS)] HRESULT urns([in] VARIANT urn,[retval, out] IDispatch** pdisp);
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f266-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLMapElement : IDispatch
{
    [propget, id(DISPID_IHTMLMAPELEMENT_AREAS)] HRESULT areas([retval, out] IHTMLAreasCollection* * p);
    [propput, id(DISPID_IHTMLMAPELEMENT_NAME)] HRESULT name([in] BSTR v);
    [propget, id(DISPID_IHTMLMAPELEMENT_NAME)] HRESULT name([retval, out] BSTR * p);
};
[
    hidden,
    uuid(3050f56a-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTMLAreasCollection
{
properties:
methods:
    [propput, id(DISPID_IHTMLAREASCOLLECTION_LENGTH)] void length(long v);
    [propget, id(DISPID_IHTMLAREASCOLLECTION_LENGTH)] long length();
    [propget, id(DISPID_IHTMLAREASCOLLECTION__NEWENUM), hidden, restricted] IUnknown* _newEnum();
    [id(DISPID_IHTMLAREASCOLLECTION_ITEM)] IDispatch* item([optional, in] VARIANT name,[optional, in] VARIANT index);
    [id(DISPID_IHTMLAREASCOLLECTION_TAGS)] IDispatch* tags([in] VARIANT tagName);
    [id(DISPID_IHTMLAREASCOLLECTION_ADD)] void add([in] IHTMLElement* element,[optional, in] VARIANT before);
    [id(DISPID_IHTMLAREASCOLLECTION_REMOVE)] void remove([defaultvalue(-1), in] long index);
    [id(DISPID_IHTMLAREASCOLLECTION2_URNS)] IDispatch* urns([in] VARIANT urn);
};
[
    uuid(3050f4ca-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLAreasCollection
{
    [default]           dispinterface DispHTMLAreasCollection;
                        interface IHTMLAreasCollection;
                        interface IHTMLAreasCollection2;
};
cpp_quote("EXTERN_C const GUID CLSID_CAreasCollection;")
[
    hidden,
    uuid(3050f526-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTMLMapElement
{
properties:
methods:
    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)] void setAttribute([in] BSTR strAttributeName,[in] VARIANT AttributeValue,[defaultvalue(1), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)] VARIANT getAttribute([in] BSTR strAttributeName,[defaultvalue(0), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)] VARIANT_BOOL removeAttribute([in] BSTR strAttributeName,[defaultvalue(1), in] LONG lFlags);
    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] void className(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] BSTR className();
    [propput, id(DISPID_IHTMLELEMENT_ID), bindable] void id(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_ID), bindable] BSTR id();
    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)] BSTR tagName();
    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)] IHTMLElement* parentElement();
    [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable] IHTMLStyle* style();
    [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] void onhelp(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] VARIANT onhelp();
    [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] void onclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] VARIANT onclick();
    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] void ondblclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] VARIANT ondblclick();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] void onkeydown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] VARIANT onkeydown();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] void onkeyup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] VARIANT onkeyup();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] void onkeypress(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] VARIANT onkeypress();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] void onmouseout(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] VARIANT onmouseout();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] void onmouseover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] VARIANT onmouseover();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] void onmousemove(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] VARIANT onmousemove();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] void onmousedown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] VARIANT onmousedown();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] void onmouseup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] VARIANT onmouseup();
    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)] IDispatch* document();
    [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] void title(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] BSTR title();
    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] void language(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] BSTR language();
    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] void onselectstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] VARIANT onselectstart();
    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)] void scrollIntoView([optional, in] VARIANT varargStart);
    [id(DISPID_IHTMLELEMENT_CONTAINS)] VARIANT_BOOL contains([in] IHTMLElement* pChild);
    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable] long sourceIndex();
    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)] VARIANT recordNumber();
    [propput, id(DISPID_IHTMLELEMENT_LANG)] void lang(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANG)] BSTR lang();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)] long offsetLeft();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)] long offsetTop();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)] long offsetWidth();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)] long offsetHeight();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)] IHTMLElement* offsetParent();
    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)] void innerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)] BSTR innerHTML();
    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)] void innerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)] BSTR innerText();
    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)] void outerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)] BSTR outerHTML();
    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)] void outerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)] BSTR outerText();
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)] void insertAdjacentHTML([in] BSTR where,[in] BSTR html);
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)] void insertAdjacentText([in] BSTR where,[in] BSTR text);
    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)] IHTMLElement* parentTextEdit();
    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)] VARIANT_BOOL isTextEdit();
    [id(DISPID_IHTMLELEMENT_CLICK)] void click();
    [propget, id(DISPID_IHTMLELEMENT_FILTERS)] IHTMLFiltersCollection* filters();
    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] void ondragstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] VARIANT ondragstart();
    [id(DISPID_IHTMLELEMENT_TOSTRING)] BSTR toString();
    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] void onbeforeupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] VARIANT onbeforeupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] void onafterupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] VARIANT onafterupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] void onerrorupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] VARIANT onerrorupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] void onrowexit(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] VARIANT onrowexit();
    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] void onrowenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] VARIANT onrowenter();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] void ondatasetchanged(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] VARIANT ondatasetchanged();
    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] void ondataavailable(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] VARIANT ondataavailable();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] void ondatasetcomplete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] VARIANT ondatasetcomplete();
    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] void onfilterchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] VARIANT onfilterchange();
    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)] IDispatch* children();
    [propget, id(DISPID_IHTMLELEMENT_ALL)] IDispatch* all();
    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)] BSTR scopeName();
    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)] void setCapture([defaultvalue(-1), in] VARIANT_BOOL containerCapture);
    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)] void releaseCapture();
    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] void onlosecapture(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] VARIANT onlosecapture();
    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)] BSTR componentFromPoint([in] long x,[in] long y);
    [id(DISPID_IHTMLELEMENT2_DOSCROLL)] void doScroll([optional, in] VARIANT component);
    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] void onscroll(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] VARIANT onscroll();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] void ondrag(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] VARIANT ondrag();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] void ondragend(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] VARIANT ondragend();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] void ondragenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] VARIANT ondragenter();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] void ondragover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] VARIANT ondragover();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] void ondragleave(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] VARIANT ondragleave();
    [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] void ondrop(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] VARIANT ondrop();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] void onbeforecut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] VARIANT onbeforecut();
    [propput, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] void oncut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] VARIANT oncut();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] void onbeforecopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] VARIANT onbeforecopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] void oncopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] VARIANT oncopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] void onbeforepaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] VARIANT onbeforepaste();
    [propput, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] void onpaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] VARIANT onpaste();
    [propget, id(DISPID_IHTMLELEMENT2_CURRENTSTYLE), nonbrowsable] IHTMLCurrentStyle* currentStyle();
    [propput, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] void onpropertychange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] VARIANT onpropertychange();
    [id(DISPID_IHTMLELEMENT2_GETCLIENTRECTS)] IHTMLRectCollection* getClientRects();
    [id(DISPID_IHTMLELEMENT2_GETBOUNDINGCLIENTRECT)] IHTMLRect* getBoundingClientRect();
    [id(DISPID_IHTMLELEMENT2_SETEXPRESSION)] void setExpression([in] BSTR propname,[in] BSTR expression,[defaultvalue(""), in] BSTR language);
    [id(DISPID_IHTMLELEMENT2_GETEXPRESSION)] VARIANT getExpression([in] BSTR propname);
    [id(DISPID_IHTMLELEMENT2_REMOVEEXPRESSION)] VARIANT_BOOL removeExpression([in] BSTR propname);
    [propput, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] void tabIndex(short v);
    [propget, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] short tabIndex();
    [id(DISPID_IHTMLELEMENT2_FOCUS)] void focus();
    [propput, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] void accessKey(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] BSTR accessKey();
    [propput, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] void onblur(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] VARIANT onblur();
    [propput, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] void onfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] VARIANT onfocus();
    [propput, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] void onresize(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] VARIANT onresize();
    [id(DISPID_IHTMLELEMENT2_BLUR)] void blur();
    [id(DISPID_IHTMLELEMENT2_ADDFILTER)] void addFilter([in] IUnknown* pUnk);
    [id(DISPID_IHTMLELEMENT2_REMOVEFILTER)] void removeFilter([in] IUnknown* pUnk);
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTHEIGHT), displaybind, bindable] long clientHeight();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTWIDTH), displaybind, bindable] long clientWidth();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTTOP), displaybind, bindable] long clientTop();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTLEFT), displaybind, bindable] long clientLeft();
    [id(DISPID_IHTMLELEMENT2_ATTACHEVENT)] VARIANT_BOOL attachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [id(DISPID_IHTMLELEMENT2_DETACHEVENT)] void detachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATE)] VARIANT readyState();
    [propput, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] void onreadystatechange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] VARIANT onreadystatechange();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] void onrowsdelete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] VARIANT onrowsdelete();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] void onrowsinserted(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] VARIANT onrowsinserted();
    [propput, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] void oncellchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] VARIANT oncellchange();
    [propput, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] void dir(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] BSTR dir();
    [id(DISPID_IHTMLELEMENT2_CREATECONTROLRANGE)] IDispatch* createControlRange();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLHEIGHT), displaybind, bindable] long scrollHeight();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLWIDTH), displaybind, bindable] long scrollWidth();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] void scrollTop(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] long scrollTop();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] void scrollLeft(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] long scrollLeft();
    [id(DISPID_IHTMLELEMENT2_CLEARATTRIBUTES)] void clearAttributes();
    [id(DISPID_IHTMLELEMENT2_MERGEATTRIBUTES)] void mergeAttributes([in] IHTMLElement* mergeThis);
    [propput, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] void oncontextmenu(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] VARIANT oncontextmenu();
    [id(DISPID_IHTMLELEMENT2_INSERTADJACENTELEMENT)] IHTMLElement* insertAdjacentElement([in] BSTR where,[in] IHTMLElement* insertedElement);
    [id(DISPID_IHTMLELEMENT2_APPLYELEMENT)] IHTMLElement* applyElement([in] IHTMLElement* apply,[in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_GETADJACENTTEXT)] BSTR getAdjacentText([in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_REPLACEADJACENTTEXT)] BSTR replaceAdjacentText([in] BSTR where,[in] BSTR newText);
    [propget, id(DISPID_IHTMLELEMENT2_CANHAVECHILDREN)] VARIANT_BOOL canHaveChildren();
    [id(DISPID_IHTMLELEMENT2_ADDBEHAVIOR)] long addBehavior([in] BSTR bstrUrl,[optional, in] VARIANT* pvarFactory);
    [id(DISPID_IHTMLELEMENT2_REMOVEBEHAVIOR)] VARIANT_BOOL removeBehavior([in] long cookie);
    [propget, id(DISPID_IHTMLELEMENT2_RUNTIMESTYLE), nonbrowsable] IHTMLStyle* runtimeStyle();
    [propget, id(DISPID_IHTMLELEMENT2_BEHAVIORURNS)] IDispatch* behaviorUrns();
    [propput, id(DISPID_IHTMLELEMENT2_TAGURN)] void tagUrn(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_TAGURN)] BSTR tagUrn();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] void onbeforeeditfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] VARIANT onbeforeeditfocus();
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATEVALUE), hidden, restricted] long readyStateValue();
    [id(DISPID_IHTMLELEMENT2_GETELEMENTSBYTAGNAME)] IHTMLElementCollection* getElementsByTagName([in] BSTR v);
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUENUMBER), hidden] long uniqueNumber();
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUEID), hidden] BSTR uniqueID();
    [propget, id(DISPID_IHTMLDOMNODE_NODETYPE)] long nodeType();
    [propget, id(DISPID_IHTMLDOMNODE_PARENTNODE)] IHTMLDOMNode* parentNode();
    [id(DISPID_IHTMLDOMNODE_HASCHILDNODES)] VARIANT_BOOL hasChildNodes();
    [propget, id(DISPID_IHTMLDOMNODE_CHILDNODES)] IDispatch* childNodes();
    [propget, id(DISPID_IHTMLDOMNODE_ATTRIBUTES)] IDispatch* attributes();
    [id(DISPID_IHTMLDOMNODE_INSERTBEFORE)] IHTMLDOMNode* insertBefore([in] IHTMLDOMNode* newChild,[optional, in] VARIANT refChild);
    [id(DISPID_IHTMLDOMNODE_REMOVECHILD)] IHTMLDOMNode* removeChild([in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_REPLACECHILD)] IHTMLDOMNode* replaceChild([in] IHTMLDOMNode* newChild,[in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_CLONENODE)] IHTMLDOMNode* cloneNode([in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_REMOVENODE)] IHTMLDOMNode* removeNode([defaultvalue(0), in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_SWAPNODE)] IHTMLDOMNode* swapNode([in] IHTMLDOMNode* otherNode);
    [id(DISPID_IHTMLDOMNODE_REPLACENODE)] IHTMLDOMNode* replaceNode([in] IHTMLDOMNode* replacement);
    [id(DISPID_IHTMLDOMNODE_APPENDCHILD)] IHTMLDOMNode* appendChild([in] IHTMLDOMNode* newChild);
    [propget, id(DISPID_IHTMLDOMNODE_NODENAME)] BSTR nodeName();
    [propput, id(DISPID_IHTMLDOMNODE_NODEVALUE)] void nodeValue(VARIANT v);
    [propget, id(DISPID_IHTMLDOMNODE_NODEVALUE)] VARIANT nodeValue();
    [propget, id(DISPID_IHTMLDOMNODE_FIRSTCHILD)] IHTMLDOMNode* firstChild();
    [propget, id(DISPID_IHTMLDOMNODE_LASTCHILD)] IHTMLDOMNode* lastChild();
    [propget, id(DISPID_IHTMLDOMNODE_PREVIOUSSIBLING)] IHTMLDOMNode* previousSibling();
    [propget, id(DISPID_IHTMLDOMNODE_NEXTSIBLING)] IHTMLDOMNode* nextSibling();
    [propget, id(DISPID_IHTMLMAPELEMENT_AREAS)] IHTMLAreasCollection* areas();
    [propput, id(DISPID_IHTMLMAPELEMENT_NAME)] void name(BSTR v);
    [propget, id(DISPID_IHTMLMAPELEMENT_NAME)] BSTR name();
};
[
    uuid(3050f271-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLMapElement
{
    [default]           dispinterface DispHTMLMapElement;
    [source, default]   dispinterface HTMLMapEvents;
    [source]            dispinterface HTMLMapEvents2;
                        interface IHTMLElement;
                        interface IHTMLElement2;
                        interface IHTMLUniqueName;
                        interface IHTMLDOMNode;
                        interface IHTMLMapElement;
};
cpp_quote("EXTERN_C const GUID CLSID_CMapElement;")
[
    hidden,
    uuid(3050f611-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface HTMLAreaEvents2
{
properties:
methods:
    [id(DISPID_HTMLELEMENTEVENTS2_ONHELP)] VARIANT_BOOL onhelp([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCLICK)] VARIANT_BOOL onclick([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDBLCLICK)] VARIANT_BOOL ondblclick([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONKEYPRESS)] VARIANT_BOOL onkeypress([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONKEYDOWN)] void onkeydown([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONKEYUP)] void onkeyup([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEOUT)] void onmouseout([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEOVER)] void onmouseover([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEMOVE)] void onmousemove([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEDOWN)] void onmousedown([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEUP)] void onmouseup([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONSELECTSTART)] VARIANT_BOOL onselectstart([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONFILTERCHANGE)] void onfilterchange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGSTART)] VARIANT_BOOL ondragstart([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFOREUPDATE)] VARIANT_BOOL onbeforeupdate([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONAFTERUPDATE)] void onafterupdate([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONERRORUPDATE)] VARIANT_BOOL onerrorupdate([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWEXIT)] VARIANT_BOOL onrowexit([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWENTER)] void onrowenter([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDATASETCHANGED)] void ondatasetchanged([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDATAAVAILABLE)] void ondataavailable([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDATASETCOMPLETE)] void ondatasetcomplete([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONLOSECAPTURE)] void onlosecapture([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONPROPERTYCHANGE)] void onpropertychange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONSCROLL)] void onscroll([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONFOCUS)] void onfocus([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBLUR)] void onblur([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONRESIZE)] void onresize([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAG)] VARIANT_BOOL ondrag([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGEND)] void ondragend([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGENTER)] VARIANT_BOOL ondragenter([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGOVER)] VARIANT_BOOL ondragover([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGLEAVE)] void ondragleave([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDROP)] VARIANT_BOOL ondrop([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFORECUT)] VARIANT_BOOL onbeforecut([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCUT)] VARIANT_BOOL oncut([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFORECOPY)] VARIANT_BOOL onbeforecopy([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCOPY)] VARIANT_BOOL oncopy([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFOREPASTE)] VARIANT_BOOL onbeforepaste([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONPASTE)] VARIANT_BOOL onpaste([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCONTEXTMENU)] VARIANT_BOOL oncontextmenu([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWSDELETE)] void onrowsdelete([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWSINSERTED)] void onrowsinserted([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCELLCHANGE)] void oncellchange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONREADYSTATECHANGE)] void onreadystatechange([in] IHTMLEventObj* pEvtObj);
};
[
    hidden,
    uuid(3050f366-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface HTMLAreaEvents
{
properties:
methods:
    [id(DISPID_HTMLELEMENTEVENTS_ONHELP)] VARIANT_BOOL onhelp();
    [id(DISPID_HTMLELEMENTEVENTS_ONCLICK)] VARIANT_BOOL onclick();
    [id(DISPID_HTMLELEMENTEVENTS_ONDBLCLICK)] VARIANT_BOOL ondblclick();
    [id(DISPID_HTMLELEMENTEVENTS_ONKEYPRESS)] VARIANT_BOOL onkeypress();
    [id(DISPID_HTMLELEMENTEVENTS_ONKEYDOWN)] void onkeydown();
    [id(DISPID_HTMLELEMENTEVENTS_ONKEYUP)] void onkeyup();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEOUT)] void onmouseout();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEOVER)] void onmouseover();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEMOVE)] void onmousemove();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEDOWN)] void onmousedown();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEUP)] void onmouseup();
    [id(DISPID_HTMLELEMENTEVENTS_ONSELECTSTART)] VARIANT_BOOL onselectstart();
    [id(DISPID_HTMLELEMENTEVENTS_ONFILTERCHANGE)] void onfilterchange();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGSTART)] VARIANT_BOOL ondragstart();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREUPDATE)] VARIANT_BOOL onbeforeupdate();
    [id(DISPID_HTMLELEMENTEVENTS_ONAFTERUPDATE)] void onafterupdate();
    [id(DISPID_HTMLELEMENTEVENTS_ONERRORUPDATE)] VARIANT_BOOL onerrorupdate();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWEXIT)] VARIANT_BOOL onrowexit();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWENTER)] void onrowenter();
    [id(DISPID_HTMLELEMENTEVENTS_ONDATASETCHANGED)] void ondatasetchanged();
    [id(DISPID_HTMLELEMENTEVENTS_ONDATAAVAILABLE)] void ondataavailable();
    [id(DISPID_HTMLELEMENTEVENTS_ONDATASETCOMPLETE)] void ondatasetcomplete();
    [id(DISPID_HTMLELEMENTEVENTS_ONLOSECAPTURE)] void onlosecapture();
    [id(DISPID_HTMLELEMENTEVENTS_ONPROPERTYCHANGE)] void onpropertychange();
    [id(DISPID_HTMLELEMENTEVENTS_ONSCROLL)] void onscroll();
    [id(DISPID_HTMLELEMENTEVENTS_ONFOCUS)] void onfocus();
    [id(DISPID_HTMLELEMENTEVENTS_ONBLUR)] void onblur();
    [id(DISPID_HTMLELEMENTEVENTS_ONRESIZE)] void onresize();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAG)] VARIANT_BOOL ondrag();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGEND)] void ondragend();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGENTER)] VARIANT_BOOL ondragenter();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGOVER)] VARIANT_BOOL ondragover();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGLEAVE)] void ondragleave();
    [id(DISPID_HTMLELEMENTEVENTS_ONDROP)] VARIANT_BOOL ondrop();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFORECUT)] VARIANT_BOOL onbeforecut();
    [id(DISPID_HTMLELEMENTEVENTS_ONCUT)] VARIANT_BOOL oncut();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFORECOPY)] VARIANT_BOOL onbeforecopy();
    [id(DISPID_HTMLELEMENTEVENTS_ONCOPY)] VARIANT_BOOL oncopy();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREPASTE)] VARIANT_BOOL onbeforepaste();
    [id(DISPID_HTMLELEMENTEVENTS_ONPASTE)] VARIANT_BOOL onpaste();
    [id(DISPID_HTMLELEMENTEVENTS_ONCONTEXTMENU)] VARIANT_BOOL oncontextmenu();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWSDELETE)] void onrowsdelete();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWSINSERTED)] void onrowsinserted();
    [id(DISPID_HTMLELEMENTEVENTS_ONCELLCHANGE)] void oncellchange();
    [id(DISPID_HTMLELEMENTEVENTS_ONREADYSTATECHANGE)] void onreadystatechange();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREEDITFOCUS)] void onbeforeeditfocus();
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f265-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLAreaElement : IDispatch
{
    [propput, id(DISPID_IHTMLAREAELEMENT_SHAPE)] HRESULT shape([in] BSTR v);
    [propget, id(DISPID_IHTMLAREAELEMENT_SHAPE)] HRESULT shape([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLAREAELEMENT_COORDS)] HRESULT coords([in] BSTR v);
    [propget, id(DISPID_IHTMLAREAELEMENT_COORDS)] HRESULT coords([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLAREAELEMENT_HREF)] HRESULT href([in] BSTR v);
    [propget, id(DISPID_IHTMLAREAELEMENT_HREF)] HRESULT href([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLAREAELEMENT_TARGET)] HRESULT target([in] BSTR v);
    [propget, id(DISPID_IHTMLAREAELEMENT_TARGET)] HRESULT target([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLAREAELEMENT_ALT)] HRESULT alt([in] BSTR v);
    [propget, id(DISPID_IHTMLAREAELEMENT_ALT)] HRESULT alt([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLAREAELEMENT_NOHREF)] HRESULT noHref([in] VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLAREAELEMENT_NOHREF)] HRESULT noHref([retval, out] VARIANT_BOOL * p);
    [propput, id(DISPID_IHTMLAREAELEMENT_HOST)] HRESULT host([in] BSTR v);
    [propget, id(DISPID_IHTMLAREAELEMENT_HOST)] HRESULT host([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLAREAELEMENT_HOSTNAME)] HRESULT hostname([in] BSTR v);
    [propget, id(DISPID_IHTMLAREAELEMENT_HOSTNAME)] HRESULT hostname([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLAREAELEMENT_PATHNAME)] HRESULT pathname([in] BSTR v);
    [propget, id(DISPID_IHTMLAREAELEMENT_PATHNAME)] HRESULT pathname([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLAREAELEMENT_PORT)] HRESULT port([in] BSTR v);
    [propget, id(DISPID_IHTMLAREAELEMENT_PORT)] HRESULT port([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLAREAELEMENT_PROTOCOL)] HRESULT protocol([in] BSTR v);
    [propget, id(DISPID_IHTMLAREAELEMENT_PROTOCOL)] HRESULT protocol([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLAREAELEMENT_SEARCH)] HRESULT search([in] BSTR v);
    [propget, id(DISPID_IHTMLAREAELEMENT_SEARCH)] HRESULT search([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLAREAELEMENT_HASH)] HRESULT hash([in] BSTR v);
    [propget, id(DISPID_IHTMLAREAELEMENT_HASH)] HRESULT hash([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLAREAELEMENT_ONBLUR), displaybind, bindable] HRESULT onblur([in] VARIANT v);
    [propget, id(DISPID_IHTMLAREAELEMENT_ONBLUR), displaybind, bindable] HRESULT onblur([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLAREAELEMENT_ONFOCUS), displaybind, bindable] HRESULT onfocus([in] VARIANT v);
    [propget, id(DISPID_IHTMLAREAELEMENT_ONFOCUS), displaybind, bindable] HRESULT onfocus([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLAREAELEMENT_TABINDEX), displaybind, bindable] HRESULT tabIndex([in] short v);
    [propget, id(DISPID_IHTMLAREAELEMENT_TABINDEX), displaybind, bindable] HRESULT tabIndex([retval, out] short * p);
    [id(DISPID_IHTMLAREAELEMENT_FOCUS)] HRESULT focus();
    [id(DISPID_IHTMLAREAELEMENT_BLUR)] HRESULT blur();
};
[
    hidden,
    uuid(3050f503-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTMLAreaElement
{
properties:
methods:
    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)] void setAttribute([in] BSTR strAttributeName,[in] VARIANT AttributeValue,[defaultvalue(1), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)] VARIANT getAttribute([in] BSTR strAttributeName,[defaultvalue(0), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)] VARIANT_BOOL removeAttribute([in] BSTR strAttributeName,[defaultvalue(1), in] LONG lFlags);
    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] void className(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] BSTR className();
    [propput, id(DISPID_IHTMLELEMENT_ID), bindable] void id(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_ID), bindable] BSTR id();
    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)] BSTR tagName();
    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)] IHTMLElement* parentElement();
    [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable] IHTMLStyle* style();
    [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] void onhelp(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] VARIANT onhelp();
    [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] void onclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] VARIANT onclick();
    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] void ondblclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] VARIANT ondblclick();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] void onkeydown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] VARIANT onkeydown();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] void onkeyup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] VARIANT onkeyup();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] void onkeypress(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] VARIANT onkeypress();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] void onmouseout(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] VARIANT onmouseout();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] void onmouseover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] VARIANT onmouseover();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] void onmousemove(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] VARIANT onmousemove();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] void onmousedown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] VARIANT onmousedown();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] void onmouseup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] VARIANT onmouseup();
    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)] IDispatch* document();
    [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] void title(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] BSTR title();
    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] void language(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] BSTR language();
    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] void onselectstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] VARIANT onselectstart();
    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)] void scrollIntoView([optional, in] VARIANT varargStart);
    [id(DISPID_IHTMLELEMENT_CONTAINS)] VARIANT_BOOL contains([in] IHTMLElement* pChild);
    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable] long sourceIndex();
    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)] VARIANT recordNumber();
    [propput, id(DISPID_IHTMLELEMENT_LANG)] void lang(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANG)] BSTR lang();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)] long offsetLeft();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)] long offsetTop();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)] long offsetWidth();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)] long offsetHeight();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)] IHTMLElement* offsetParent();
    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)] void innerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)] BSTR innerHTML();
    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)] void innerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)] BSTR innerText();
    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)] void outerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)] BSTR outerHTML();
    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)] void outerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)] BSTR outerText();
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)] void insertAdjacentHTML([in] BSTR where,[in] BSTR html);
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)] void insertAdjacentText([in] BSTR where,[in] BSTR text);
    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)] IHTMLElement* parentTextEdit();
    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)] VARIANT_BOOL isTextEdit();
    [id(DISPID_IHTMLELEMENT_CLICK)] void click();
    [propget, id(DISPID_IHTMLELEMENT_FILTERS)] IHTMLFiltersCollection* filters();
    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] void ondragstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] VARIANT ondragstart();
    [id(DISPID_IHTMLELEMENT_TOSTRING)] BSTR toString();
    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] void onbeforeupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] VARIANT onbeforeupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] void onafterupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] VARIANT onafterupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] void onerrorupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] VARIANT onerrorupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] void onrowexit(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] VARIANT onrowexit();
    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] void onrowenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] VARIANT onrowenter();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] void ondatasetchanged(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] VARIANT ondatasetchanged();
    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] void ondataavailable(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] VARIANT ondataavailable();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] void ondatasetcomplete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] VARIANT ondatasetcomplete();
    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] void onfilterchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] VARIANT onfilterchange();
    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)] IDispatch* children();
    [propget, id(DISPID_IHTMLELEMENT_ALL)] IDispatch* all();
    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)] BSTR scopeName();
    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)] void setCapture([defaultvalue(-1), in] VARIANT_BOOL containerCapture);
    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)] void releaseCapture();
    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] void onlosecapture(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] VARIANT onlosecapture();
    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)] BSTR componentFromPoint([in] long x,[in] long y);
    [id(DISPID_IHTMLELEMENT2_DOSCROLL)] void doScroll([optional, in] VARIANT component);
    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] void onscroll(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] VARIANT onscroll();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] void ondrag(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] VARIANT ondrag();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] void ondragend(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] VARIANT ondragend();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] void ondragenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] VARIANT ondragenter();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] void ondragover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] VARIANT ondragover();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] void ondragleave(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] VARIANT ondragleave();
    [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] void ondrop(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] VARIANT ondrop();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] void onbeforecut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] VARIANT onbeforecut();
    [propput, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] void oncut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] VARIANT oncut();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] void onbeforecopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] VARIANT onbeforecopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] void oncopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] VARIANT oncopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] void onbeforepaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] VARIANT onbeforepaste();
    [propput, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] void onpaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] VARIANT onpaste();
    [propget, id(DISPID_IHTMLELEMENT2_CURRENTSTYLE), nonbrowsable] IHTMLCurrentStyle* currentStyle();
    [propput, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] void onpropertychange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] VARIANT onpropertychange();
    [id(DISPID_IHTMLELEMENT2_GETCLIENTRECTS)] IHTMLRectCollection* getClientRects();
    [id(DISPID_IHTMLELEMENT2_GETBOUNDINGCLIENTRECT)] IHTMLRect* getBoundingClientRect();
    [id(DISPID_IHTMLELEMENT2_SETEXPRESSION)] void setExpression([in] BSTR propname,[in] BSTR expression,[defaultvalue(""), in] BSTR language);
    [id(DISPID_IHTMLELEMENT2_GETEXPRESSION)] VARIANT getExpression([in] BSTR propname);
    [id(DISPID_IHTMLELEMENT2_REMOVEEXPRESSION)] VARIANT_BOOL removeExpression([in] BSTR propname);
    [propput, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] void tabIndex(short v);
    [propget, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] short tabIndex();
    [id(DISPID_IHTMLELEMENT2_FOCUS)] void focus();
    [propput, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] void accessKey(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] BSTR accessKey();
    [propput, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] void onblur(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] VARIANT onblur();
    [propput, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] void onfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] VARIANT onfocus();
    [propput, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] void onresize(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] VARIANT onresize();
    [id(DISPID_IHTMLELEMENT2_BLUR)] void blur();
    [id(DISPID_IHTMLELEMENT2_ADDFILTER)] void addFilter([in] IUnknown* pUnk);
    [id(DISPID_IHTMLELEMENT2_REMOVEFILTER)] void removeFilter([in] IUnknown* pUnk);
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTHEIGHT), displaybind, bindable] long clientHeight();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTWIDTH), displaybind, bindable] long clientWidth();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTTOP), displaybind, bindable] long clientTop();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTLEFT), displaybind, bindable] long clientLeft();
    [id(DISPID_IHTMLELEMENT2_ATTACHEVENT)] VARIANT_BOOL attachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [id(DISPID_IHTMLELEMENT2_DETACHEVENT)] void detachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATE)] VARIANT readyState();
    [propput, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] void onreadystatechange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] VARIANT onreadystatechange();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] void onrowsdelete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] VARIANT onrowsdelete();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] void onrowsinserted(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] VARIANT onrowsinserted();
    [propput, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] void oncellchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] VARIANT oncellchange();
    [propput, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] void dir(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] BSTR dir();
    [id(DISPID_IHTMLELEMENT2_CREATECONTROLRANGE)] IDispatch* createControlRange();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLHEIGHT), displaybind, bindable] long scrollHeight();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLWIDTH), displaybind, bindable] long scrollWidth();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] void scrollTop(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] long scrollTop();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] void scrollLeft(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] long scrollLeft();
    [id(DISPID_IHTMLELEMENT2_CLEARATTRIBUTES)] void clearAttributes();
    [id(DISPID_IHTMLELEMENT2_MERGEATTRIBUTES)] void mergeAttributes([in] IHTMLElement* mergeThis);
    [propput, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] void oncontextmenu(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] VARIANT oncontextmenu();
    [id(DISPID_IHTMLELEMENT2_INSERTADJACENTELEMENT)] IHTMLElement* insertAdjacentElement([in] BSTR where,[in] IHTMLElement* insertedElement);
    [id(DISPID_IHTMLELEMENT2_APPLYELEMENT)] IHTMLElement* applyElement([in] IHTMLElement* apply,[in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_GETADJACENTTEXT)] BSTR getAdjacentText([in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_REPLACEADJACENTTEXT)] BSTR replaceAdjacentText([in] BSTR where,[in] BSTR newText);
    [propget, id(DISPID_IHTMLELEMENT2_CANHAVECHILDREN)] VARIANT_BOOL canHaveChildren();
    [id(DISPID_IHTMLELEMENT2_ADDBEHAVIOR)] long addBehavior([in] BSTR bstrUrl,[optional, in] VARIANT* pvarFactory);
    [id(DISPID_IHTMLELEMENT2_REMOVEBEHAVIOR)] VARIANT_BOOL removeBehavior([in] long cookie);
    [propget, id(DISPID_IHTMLELEMENT2_RUNTIMESTYLE), nonbrowsable] IHTMLStyle* runtimeStyle();
    [propget, id(DISPID_IHTMLELEMENT2_BEHAVIORURNS)] IDispatch* behaviorUrns();
    [propput, id(DISPID_IHTMLELEMENT2_TAGURN)] void tagUrn(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_TAGURN)] BSTR tagUrn();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] void onbeforeeditfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] VARIANT onbeforeeditfocus();
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATEVALUE), hidden, restricted] long readyStateValue();
    [id(DISPID_IHTMLELEMENT2_GETELEMENTSBYTAGNAME)] IHTMLElementCollection* getElementsByTagName([in] BSTR v);
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUENUMBER), hidden] long uniqueNumber();
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUEID), hidden] BSTR uniqueID();
    [propget, id(DISPID_IHTMLDOMNODE_NODETYPE)] long nodeType();
    [propget, id(DISPID_IHTMLDOMNODE_PARENTNODE)] IHTMLDOMNode* parentNode();
    [id(DISPID_IHTMLDOMNODE_HASCHILDNODES)] VARIANT_BOOL hasChildNodes();
    [propget, id(DISPID_IHTMLDOMNODE_CHILDNODES)] IDispatch* childNodes();
    [propget, id(DISPID_IHTMLDOMNODE_ATTRIBUTES)] IDispatch* attributes();
    [id(DISPID_IHTMLDOMNODE_INSERTBEFORE)] IHTMLDOMNode* insertBefore([in] IHTMLDOMNode* newChild,[optional, in] VARIANT refChild);
    [id(DISPID_IHTMLDOMNODE_REMOVECHILD)] IHTMLDOMNode* removeChild([in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_REPLACECHILD)] IHTMLDOMNode* replaceChild([in] IHTMLDOMNode* newChild,[in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_CLONENODE)] IHTMLDOMNode* cloneNode([in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_REMOVENODE)] IHTMLDOMNode* removeNode([defaultvalue(0), in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_SWAPNODE)] IHTMLDOMNode* swapNode([in] IHTMLDOMNode* otherNode);
    [id(DISPID_IHTMLDOMNODE_REPLACENODE)] IHTMLDOMNode* replaceNode([in] IHTMLDOMNode* replacement);
    [id(DISPID_IHTMLDOMNODE_APPENDCHILD)] IHTMLDOMNode* appendChild([in] IHTMLDOMNode* newChild);
    [propget, id(DISPID_IHTMLDOMNODE_NODENAME)] BSTR nodeName();
    [propput, id(DISPID_IHTMLDOMNODE_NODEVALUE)] void nodeValue(VARIANT v);
    [propget, id(DISPID_IHTMLDOMNODE_NODEVALUE)] VARIANT nodeValue();
    [propget, id(DISPID_IHTMLDOMNODE_FIRSTCHILD)] IHTMLDOMNode* firstChild();
    [propget, id(DISPID_IHTMLDOMNODE_LASTCHILD)] IHTMLDOMNode* lastChild();
    [propget, id(DISPID_IHTMLDOMNODE_PREVIOUSSIBLING)] IHTMLDOMNode* previousSibling();
    [propget, id(DISPID_IHTMLDOMNODE_NEXTSIBLING)] IHTMLDOMNode* nextSibling();
    [propput, id(DISPID_IHTMLAREAELEMENT_SHAPE)] void shape(BSTR v);
    [propget, id(DISPID_IHTMLAREAELEMENT_SHAPE)] BSTR shape();
    [propput, id(DISPID_IHTMLAREAELEMENT_COORDS)] void coords(BSTR v);
    [propget, id(DISPID_IHTMLAREAELEMENT_COORDS)] BSTR coords();
    [propput, id(DISPID_IHTMLAREAELEMENT_HREF)] void href(BSTR v);
    [propget, id(DISPID_IHTMLAREAELEMENT_HREF)] BSTR href();
    [propput, id(DISPID_IHTMLAREAELEMENT_TARGET)] void target(BSTR v);
    [propget, id(DISPID_IHTMLAREAELEMENT_TARGET)] BSTR target();
    [propput, id(DISPID_IHTMLAREAELEMENT_ALT)] void alt(BSTR v);
    [propget, id(DISPID_IHTMLAREAELEMENT_ALT)] BSTR alt();
    [propput, id(DISPID_IHTMLAREAELEMENT_NOHREF)] void noHref(VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLAREAELEMENT_NOHREF)] VARIANT_BOOL noHref();
    [propput, id(DISPID_IHTMLAREAELEMENT_HOST)] void host(BSTR v);
    [propget, id(DISPID_IHTMLAREAELEMENT_HOST)] BSTR host();
    [propput, id(DISPID_IHTMLAREAELEMENT_HOSTNAME)] void hostname(BSTR v);
    [propget, id(DISPID_IHTMLAREAELEMENT_HOSTNAME)] BSTR hostname();
    [propput, id(DISPID_IHTMLAREAELEMENT_PATHNAME)] void pathname(BSTR v);
    [propget, id(DISPID_IHTMLAREAELEMENT_PATHNAME)] BSTR pathname();
    [propput, id(DISPID_IHTMLAREAELEMENT_PORT)] void port(BSTR v);
    [propget, id(DISPID_IHTMLAREAELEMENT_PORT)] BSTR port();
    [propput, id(DISPID_IHTMLAREAELEMENT_PROTOCOL)] void protocol(BSTR v);
    [propget, id(DISPID_IHTMLAREAELEMENT_PROTOCOL)] BSTR protocol();
    [propput, id(DISPID_IHTMLAREAELEMENT_SEARCH)] void search(BSTR v);
    [propget, id(DISPID_IHTMLAREAELEMENT_SEARCH)] BSTR search();
    [propput, id(DISPID_IHTMLAREAELEMENT_HASH)] void hash(BSTR v);
    [propget, id(DISPID_IHTMLAREAELEMENT_HASH)] BSTR hash();
};
[
    uuid(3050f283-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLAreaElement
{
    [default]           dispinterface DispHTMLAreaElement;
    [source, default]   dispinterface HTMLAreaEvents;
    [source]            dispinterface HTMLAreaEvents2;
                        interface IHTMLElement;
                        interface IHTMLElement2;
                        interface IHTMLUniqueName;
                        interface IHTMLDOMNode;
                        interface IHTMLAreaElement;
};
cpp_quote("EXTERN_C const GUID CLSID_CAreaElement;")
typedef enum _htmlCaptionAlign
{
    htmlCaptionAlignNotSet = 0,
    htmlCaptionAlignLeft = 1,
    htmlCaptionAlignCenter = 2,
    htmlCaptionAlignRight = 3,
    htmlCaptionAlignJustify = 4,
    htmlCaptionAlignTop = 5,
    htmlCaptionAlignBottom = 6,
    htmlCaptionAlign_Max = 2147483647L
} htmlCaptionAlign;

typedef enum _htmlCaptionVAlign
{
    htmlCaptionVAlignNotSet = 0,
    htmlCaptionVAlignTop = 1,
    htmlCaptionVAlignBottom = 2,
    htmlCaptionVAlign_Max = 2147483647L
} htmlCaptionVAlign;

[
    odl,
    oleautomation,
    dual,
    uuid(3050f2eb-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLTableCaption : IDispatch
{
    [propput, id(DISPID_IHTMLTABLECAPTION_ALIGN)] HRESULT align([in] BSTR v);
    [propget, id(DISPID_IHTMLTABLECAPTION_ALIGN)] HRESULT align([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLTABLECAPTION_VALIGN)] HRESULT vAlign([in] BSTR v);
    [propget, id(DISPID_IHTMLTABLECAPTION_VALIGN)] HRESULT vAlign([retval, out] BSTR * p);
};
[
    hidden,
    uuid(3050f508-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTMLTableCaption
{
properties:
methods:
    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)] void setAttribute([in] BSTR strAttributeName,[in] VARIANT AttributeValue,[defaultvalue(1), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)] VARIANT getAttribute([in] BSTR strAttributeName,[defaultvalue(0), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)] VARIANT_BOOL removeAttribute([in] BSTR strAttributeName,[defaultvalue(1), in] LONG lFlags);
    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] void className(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] BSTR className();
    [propput, id(DISPID_IHTMLELEMENT_ID), bindable] void id(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_ID), bindable] BSTR id();
    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)] BSTR tagName();
    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)] IHTMLElement* parentElement();
    [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable] IHTMLStyle* style();
    [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] void onhelp(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] VARIANT onhelp();
    [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] void onclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] VARIANT onclick();
    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] void ondblclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] VARIANT ondblclick();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] void onkeydown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] VARIANT onkeydown();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] void onkeyup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] VARIANT onkeyup();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] void onkeypress(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] VARIANT onkeypress();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] void onmouseout(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] VARIANT onmouseout();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] void onmouseover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] VARIANT onmouseover();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] void onmousemove(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] VARIANT onmousemove();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] void onmousedown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] VARIANT onmousedown();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] void onmouseup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] VARIANT onmouseup();
    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)] IDispatch* document();
    [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] void title(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] BSTR title();
    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] void language(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] BSTR language();
    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] void onselectstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] VARIANT onselectstart();
    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)] void scrollIntoView([optional, in] VARIANT varargStart);
    [id(DISPID_IHTMLELEMENT_CONTAINS)] VARIANT_BOOL contains([in] IHTMLElement* pChild);
    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable] long sourceIndex();
    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)] VARIANT recordNumber();
    [propput, id(DISPID_IHTMLELEMENT_LANG)] void lang(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANG)] BSTR lang();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)] long offsetLeft();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)] long offsetTop();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)] long offsetWidth();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)] long offsetHeight();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)] IHTMLElement* offsetParent();
    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)] void innerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)] BSTR innerHTML();
    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)] void innerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)] BSTR innerText();
    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)] void outerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)] BSTR outerHTML();
    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)] void outerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)] BSTR outerText();
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)] void insertAdjacentHTML([in] BSTR where,[in] BSTR html);
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)] void insertAdjacentText([in] BSTR where,[in] BSTR text);
    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)] IHTMLElement* parentTextEdit();
    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)] VARIANT_BOOL isTextEdit();
    [id(DISPID_IHTMLELEMENT_CLICK)] void click();
    [propget, id(DISPID_IHTMLELEMENT_FILTERS)] IHTMLFiltersCollection* filters();
    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] void ondragstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] VARIANT ondragstart();
    [id(DISPID_IHTMLELEMENT_TOSTRING)] BSTR toString();
    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] void onbeforeupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] VARIANT onbeforeupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] void onafterupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] VARIANT onafterupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] void onerrorupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] VARIANT onerrorupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] void onrowexit(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] VARIANT onrowexit();
    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] void onrowenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] VARIANT onrowenter();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] void ondatasetchanged(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] VARIANT ondatasetchanged();
    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] void ondataavailable(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] VARIANT ondataavailable();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] void ondatasetcomplete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] VARIANT ondatasetcomplete();
    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] void onfilterchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] VARIANT onfilterchange();
    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)] IDispatch* children();
    [propget, id(DISPID_IHTMLELEMENT_ALL)] IDispatch* all();
    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)] BSTR scopeName();
    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)] void setCapture([defaultvalue(-1), in] VARIANT_BOOL containerCapture);
    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)] void releaseCapture();
    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] void onlosecapture(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] VARIANT onlosecapture();
    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)] BSTR componentFromPoint([in] long x,[in] long y);
    [id(DISPID_IHTMLELEMENT2_DOSCROLL)] void doScroll([optional, in] VARIANT component);
    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] void onscroll(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] VARIANT onscroll();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] void ondrag(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] VARIANT ondrag();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] void ondragend(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] VARIANT ondragend();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] void ondragenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] VARIANT ondragenter();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] void ondragover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] VARIANT ondragover();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] void ondragleave(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] VARIANT ondragleave();
    [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] void ondrop(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] VARIANT ondrop();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] void onbeforecut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] VARIANT onbeforecut();
    [propput, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] void oncut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] VARIANT oncut();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] void onbeforecopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] VARIANT onbeforecopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] void oncopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] VARIANT oncopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] void onbeforepaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] VARIANT onbeforepaste();
    [propput, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] void onpaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] VARIANT onpaste();
    [propget, id(DISPID_IHTMLELEMENT2_CURRENTSTYLE), nonbrowsable] IHTMLCurrentStyle* currentStyle();
    [propput, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] void onpropertychange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] VARIANT onpropertychange();
    [id(DISPID_IHTMLELEMENT2_GETCLIENTRECTS)] IHTMLRectCollection* getClientRects();
    [id(DISPID_IHTMLELEMENT2_GETBOUNDINGCLIENTRECT)] IHTMLRect* getBoundingClientRect();
    [id(DISPID_IHTMLELEMENT2_SETEXPRESSION)] void setExpression([in] BSTR propname,[in] BSTR expression,[defaultvalue(""), in] BSTR language);
    [id(DISPID_IHTMLELEMENT2_GETEXPRESSION)] VARIANT getExpression([in] BSTR propname);
    [id(DISPID_IHTMLELEMENT2_REMOVEEXPRESSION)] VARIANT_BOOL removeExpression([in] BSTR propname);
    [propput, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] void tabIndex(short v);
    [propget, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] short tabIndex();
    [id(DISPID_IHTMLELEMENT2_FOCUS)] void focus();
    [propput, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] void accessKey(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] BSTR accessKey();
    [propput, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] void onblur(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] VARIANT onblur();
    [propput, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] void onfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] VARIANT onfocus();
    [propput, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] void onresize(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] VARIANT onresize();
    [id(DISPID_IHTMLELEMENT2_BLUR)] void blur();
    [id(DISPID_IHTMLELEMENT2_ADDFILTER)] void addFilter([in] IUnknown* pUnk);
    [id(DISPID_IHTMLELEMENT2_REMOVEFILTER)] void removeFilter([in] IUnknown* pUnk);
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTHEIGHT), displaybind, bindable] long clientHeight();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTWIDTH), displaybind, bindable] long clientWidth();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTTOP), displaybind, bindable] long clientTop();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTLEFT), displaybind, bindable] long clientLeft();
    [id(DISPID_IHTMLELEMENT2_ATTACHEVENT)] VARIANT_BOOL attachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [id(DISPID_IHTMLELEMENT2_DETACHEVENT)] void detachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATE)] VARIANT readyState();
    [propput, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] void onreadystatechange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] VARIANT onreadystatechange();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] void onrowsdelete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] VARIANT onrowsdelete();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] void onrowsinserted(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] VARIANT onrowsinserted();
    [propput, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] void oncellchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] VARIANT oncellchange();
    [propput, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] void dir(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] BSTR dir();
    [id(DISPID_IHTMLELEMENT2_CREATECONTROLRANGE)] IDispatch* createControlRange();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLHEIGHT), displaybind, bindable] long scrollHeight();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLWIDTH), displaybind, bindable] long scrollWidth();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] void scrollTop(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] long scrollTop();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] void scrollLeft(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] long scrollLeft();
    [id(DISPID_IHTMLELEMENT2_CLEARATTRIBUTES)] void clearAttributes();
    [id(DISPID_IHTMLELEMENT2_MERGEATTRIBUTES)] void mergeAttributes([in] IHTMLElement* mergeThis);
    [propput, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] void oncontextmenu(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] VARIANT oncontextmenu();
    [id(DISPID_IHTMLELEMENT2_INSERTADJACENTELEMENT)] IHTMLElement* insertAdjacentElement([in] BSTR where,[in] IHTMLElement* insertedElement);
    [id(DISPID_IHTMLELEMENT2_APPLYELEMENT)] IHTMLElement* applyElement([in] IHTMLElement* apply,[in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_GETADJACENTTEXT)] BSTR getAdjacentText([in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_REPLACEADJACENTTEXT)] BSTR replaceAdjacentText([in] BSTR where,[in] BSTR newText);
    [propget, id(DISPID_IHTMLELEMENT2_CANHAVECHILDREN)] VARIANT_BOOL canHaveChildren();
    [id(DISPID_IHTMLELEMENT2_ADDBEHAVIOR)] long addBehavior([in] BSTR bstrUrl,[optional, in] VARIANT* pvarFactory);
    [id(DISPID_IHTMLELEMENT2_REMOVEBEHAVIOR)] VARIANT_BOOL removeBehavior([in] long cookie);
    [propget, id(DISPID_IHTMLELEMENT2_RUNTIMESTYLE), nonbrowsable] IHTMLStyle* runtimeStyle();
    [propget, id(DISPID_IHTMLELEMENT2_BEHAVIORURNS)] IDispatch* behaviorUrns();
    [propput, id(DISPID_IHTMLELEMENT2_TAGURN)] void tagUrn(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_TAGURN)] BSTR tagUrn();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] void onbeforeeditfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] VARIANT onbeforeeditfocus();
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATEVALUE), hidden, restricted] long readyStateValue();
    [id(DISPID_IHTMLELEMENT2_GETELEMENTSBYTAGNAME)] IHTMLElementCollection* getElementsByTagName([in] BSTR v);
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUENUMBER), hidden] long uniqueNumber();
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUEID), hidden] BSTR uniqueID();
    [propget, id(DISPID_IHTMLDOMNODE_NODETYPE)] long nodeType();
    [propget, id(DISPID_IHTMLDOMNODE_PARENTNODE)] IHTMLDOMNode* parentNode();
    [id(DISPID_IHTMLDOMNODE_HASCHILDNODES)] VARIANT_BOOL hasChildNodes();
    [propget, id(DISPID_IHTMLDOMNODE_CHILDNODES)] IDispatch* childNodes();
    [propget, id(DISPID_IHTMLDOMNODE_ATTRIBUTES)] IDispatch* attributes();
    [id(DISPID_IHTMLDOMNODE_INSERTBEFORE)] IHTMLDOMNode* insertBefore([in] IHTMLDOMNode* newChild,[optional, in] VARIANT refChild);
    [id(DISPID_IHTMLDOMNODE_REMOVECHILD)] IHTMLDOMNode* removeChild([in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_REPLACECHILD)] IHTMLDOMNode* replaceChild([in] IHTMLDOMNode* newChild,[in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_CLONENODE)] IHTMLDOMNode* cloneNode([in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_REMOVENODE)] IHTMLDOMNode* removeNode([defaultvalue(0), in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_SWAPNODE)] IHTMLDOMNode* swapNode([in] IHTMLDOMNode* otherNode);
    [id(DISPID_IHTMLDOMNODE_REPLACENODE)] IHTMLDOMNode* replaceNode([in] IHTMLDOMNode* replacement);
    [id(DISPID_IHTMLDOMNODE_APPENDCHILD)] IHTMLDOMNode* appendChild([in] IHTMLDOMNode* newChild);
    [propget, id(DISPID_IHTMLDOMNODE_NODENAME)] BSTR nodeName();
    [propput, id(DISPID_IHTMLDOMNODE_NODEVALUE)] void nodeValue(VARIANT v);
    [propget, id(DISPID_IHTMLDOMNODE_NODEVALUE)] VARIANT nodeValue();
    [propget, id(DISPID_IHTMLDOMNODE_FIRSTCHILD)] IHTMLDOMNode* firstChild();
    [propget, id(DISPID_IHTMLDOMNODE_LASTCHILD)] IHTMLDOMNode* lastChild();
    [propget, id(DISPID_IHTMLDOMNODE_PREVIOUSSIBLING)] IHTMLDOMNode* previousSibling();
    [propget, id(DISPID_IHTMLDOMNODE_NEXTSIBLING)] IHTMLDOMNode* nextSibling();
    [propput, id(DISPID_IHTMLTABLECAPTION_ALIGN)] void align(BSTR v);
    [propget, id(DISPID_IHTMLTABLECAPTION_ALIGN)] BSTR align();
    [propput, id(DISPID_IHTMLTABLECAPTION_VALIGN)] void vAlign(BSTR v);
    [propget, id(DISPID_IHTMLTABLECAPTION_VALIGN)] BSTR vAlign();
};
[
    uuid(3050f2ec-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLTableCaption
{
    [default]           dispinterface DispHTMLTableCaption;
    [source, default]   dispinterface HTMLTextContainerEvents;
    [source]            dispinterface HTMLTextContainerEvents2;
                        interface IHTMLElement;
                        interface IHTMLElement2;
                        interface IHTMLUniqueName;
                        interface IHTMLDOMNode;
                        interface IHTMLControlElement;
                        interface IHTMLTextContainer;
                        interface IHTMLTableCaption;
};
cpp_quote("EXTERN_C const GUID CLSID_CTableCaption;")
[
    odl,
    oleautomation,
    dual,
    uuid(3050f20c-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLCommentElement : IDispatch
{
    [propput, id(DISPID_IHTMLCOMMENTELEMENT_TEXT), displaybind, bindable] HRESULT text([in] BSTR v);
    [propget, id(DISPID_IHTMLCOMMENTELEMENT_TEXT), displaybind, bindable] HRESULT text([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLCOMMENTELEMENT_ATOMIC), displaybind, bindable] HRESULT atomic([in] long v);
    [propget, id(DISPID_IHTMLCOMMENTELEMENT_ATOMIC), displaybind, bindable] HRESULT atomic([retval, out] long * p);
};
[
    hidden,
    uuid(3050f50a-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTMLCommentElement
{
properties:
methods:
    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)] void setAttribute([in] BSTR strAttributeName,[in] VARIANT AttributeValue,[defaultvalue(1), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)] VARIANT getAttribute([in] BSTR strAttributeName,[defaultvalue(0), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)] VARIANT_BOOL removeAttribute([in] BSTR strAttributeName,[defaultvalue(1), in] LONG lFlags);
    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] void className(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] BSTR className();
    [propput, id(DISPID_IHTMLELEMENT_ID), bindable] void id(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_ID), bindable] BSTR id();
    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)] BSTR tagName();
    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)] IHTMLElement* parentElement();
    [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable] IHTMLStyle* style();
    [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] void onhelp(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] VARIANT onhelp();
    [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] void onclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] VARIANT onclick();
    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] void ondblclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] VARIANT ondblclick();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] void onkeydown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] VARIANT onkeydown();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] void onkeyup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] VARIANT onkeyup();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] void onkeypress(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] VARIANT onkeypress();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] void onmouseout(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] VARIANT onmouseout();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] void onmouseover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] VARIANT onmouseover();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] void onmousemove(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] VARIANT onmousemove();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] void onmousedown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] VARIANT onmousedown();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] void onmouseup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] VARIANT onmouseup();
    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)] IDispatch* document();
    [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] void title(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] BSTR title();
    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] void language(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] BSTR language();
    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] void onselectstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] VARIANT onselectstart();
    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)] void scrollIntoView([optional, in] VARIANT varargStart);
    [id(DISPID_IHTMLELEMENT_CONTAINS)] VARIANT_BOOL contains([in] IHTMLElement* pChild);
    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable] long sourceIndex();
    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)] VARIANT recordNumber();
    [propput, id(DISPID_IHTMLELEMENT_LANG)] void lang(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANG)] BSTR lang();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)] long offsetLeft();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)] long offsetTop();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)] long offsetWidth();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)] long offsetHeight();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)] IHTMLElement* offsetParent();
    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)] void innerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)] BSTR innerHTML();
    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)] void innerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)] BSTR innerText();
    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)] void outerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)] BSTR outerHTML();
    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)] void outerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)] BSTR outerText();
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)] void insertAdjacentHTML([in] BSTR where,[in] BSTR html);
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)] void insertAdjacentText([in] BSTR where,[in] BSTR text);
    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)] IHTMLElement* parentTextEdit();
    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)] VARIANT_BOOL isTextEdit();
    [id(DISPID_IHTMLELEMENT_CLICK)] void click();
    [propget, id(DISPID_IHTMLELEMENT_FILTERS)] IHTMLFiltersCollection* filters();
    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] void ondragstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] VARIANT ondragstart();
    [id(DISPID_IHTMLELEMENT_TOSTRING)] BSTR toString();
    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] void onbeforeupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] VARIANT onbeforeupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] void onafterupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] VARIANT onafterupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] void onerrorupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] VARIANT onerrorupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] void onrowexit(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] VARIANT onrowexit();
    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] void onrowenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] VARIANT onrowenter();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] void ondatasetchanged(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] VARIANT ondatasetchanged();
    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] void ondataavailable(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] VARIANT ondataavailable();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] void ondatasetcomplete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] VARIANT ondatasetcomplete();
    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] void onfilterchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] VARIANT onfilterchange();
    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)] IDispatch* children();
    [propget, id(DISPID_IHTMLELEMENT_ALL)] IDispatch* all();
    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)] BSTR scopeName();
    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)] void setCapture([defaultvalue(-1), in] VARIANT_BOOL containerCapture);
    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)] void releaseCapture();
    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] void onlosecapture(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] VARIANT onlosecapture();
    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)] BSTR componentFromPoint([in] long x,[in] long y);
    [id(DISPID_IHTMLELEMENT2_DOSCROLL)] void doScroll([optional, in] VARIANT component);
    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] void onscroll(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] VARIANT onscroll();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] void ondrag(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] VARIANT ondrag();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] void ondragend(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] VARIANT ondragend();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] void ondragenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] VARIANT ondragenter();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] void ondragover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] VARIANT ondragover();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] void ondragleave(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] VARIANT ondragleave();
    [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] void ondrop(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] VARIANT ondrop();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] void onbeforecut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] VARIANT onbeforecut();
    [propput, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] void oncut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] VARIANT oncut();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] void onbeforecopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] VARIANT onbeforecopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] void oncopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] VARIANT oncopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] void onbeforepaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] VARIANT onbeforepaste();
    [propput, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] void onpaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] VARIANT onpaste();
    [propget, id(DISPID_IHTMLELEMENT2_CURRENTSTYLE), nonbrowsable] IHTMLCurrentStyle* currentStyle();
    [propput, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] void onpropertychange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] VARIANT onpropertychange();
    [id(DISPID_IHTMLELEMENT2_GETCLIENTRECTS)] IHTMLRectCollection* getClientRects();
    [id(DISPID_IHTMLELEMENT2_GETBOUNDINGCLIENTRECT)] IHTMLRect* getBoundingClientRect();
    [id(DISPID_IHTMLELEMENT2_SETEXPRESSION)] void setExpression([in] BSTR propname,[in] BSTR expression,[defaultvalue(""), in] BSTR language);
    [id(DISPID_IHTMLELEMENT2_GETEXPRESSION)] VARIANT getExpression([in] BSTR propname);
    [id(DISPID_IHTMLELEMENT2_REMOVEEXPRESSION)] VARIANT_BOOL removeExpression([in] BSTR propname);
    [propput, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] void tabIndex(short v);
    [propget, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] short tabIndex();
    [id(DISPID_IHTMLELEMENT2_FOCUS)] void focus();
    [propput, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] void accessKey(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] BSTR accessKey();
    [propput, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] void onblur(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] VARIANT onblur();
    [propput, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] void onfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] VARIANT onfocus();
    [propput, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] void onresize(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] VARIANT onresize();
    [id(DISPID_IHTMLELEMENT2_BLUR)] void blur();
    [id(DISPID_IHTMLELEMENT2_ADDFILTER)] void addFilter([in] IUnknown* pUnk);
    [id(DISPID_IHTMLELEMENT2_REMOVEFILTER)] void removeFilter([in] IUnknown* pUnk);
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTHEIGHT), displaybind, bindable] long clientHeight();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTWIDTH), displaybind, bindable] long clientWidth();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTTOP), displaybind, bindable] long clientTop();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTLEFT), displaybind, bindable] long clientLeft();
    [id(DISPID_IHTMLELEMENT2_ATTACHEVENT)] VARIANT_BOOL attachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [id(DISPID_IHTMLELEMENT2_DETACHEVENT)] void detachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATE)] VARIANT readyState();
    [propput, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] void onreadystatechange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] VARIANT onreadystatechange();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] void onrowsdelete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] VARIANT onrowsdelete();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] void onrowsinserted(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] VARIANT onrowsinserted();
    [propput, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] void oncellchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] VARIANT oncellchange();
    [propput, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] void dir(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] BSTR dir();
    [id(DISPID_IHTMLELEMENT2_CREATECONTROLRANGE)] IDispatch* createControlRange();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLHEIGHT), displaybind, bindable] long scrollHeight();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLWIDTH), displaybind, bindable] long scrollWidth();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] void scrollTop(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] long scrollTop();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] void scrollLeft(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] long scrollLeft();
    [id(DISPID_IHTMLELEMENT2_CLEARATTRIBUTES)] void clearAttributes();
    [id(DISPID_IHTMLELEMENT2_MERGEATTRIBUTES)] void mergeAttributes([in] IHTMLElement* mergeThis);
    [propput, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] void oncontextmenu(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] VARIANT oncontextmenu();
    [id(DISPID_IHTMLELEMENT2_INSERTADJACENTELEMENT)] IHTMLElement* insertAdjacentElement([in] BSTR where,[in] IHTMLElement* insertedElement);
    [id(DISPID_IHTMLELEMENT2_APPLYELEMENT)] IHTMLElement* applyElement([in] IHTMLElement* apply,[in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_GETADJACENTTEXT)] BSTR getAdjacentText([in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_REPLACEADJACENTTEXT)] BSTR replaceAdjacentText([in] BSTR where,[in] BSTR newText);
    [propget, id(DISPID_IHTMLELEMENT2_CANHAVECHILDREN)] VARIANT_BOOL canHaveChildren();
    [id(DISPID_IHTMLELEMENT2_ADDBEHAVIOR)] long addBehavior([in] BSTR bstrUrl,[optional, in] VARIANT* pvarFactory);
    [id(DISPID_IHTMLELEMENT2_REMOVEBEHAVIOR)] VARIANT_BOOL removeBehavior([in] long cookie);
    [propget, id(DISPID_IHTMLELEMENT2_RUNTIMESTYLE), nonbrowsable] IHTMLStyle* runtimeStyle();
    [propget, id(DISPID_IHTMLELEMENT2_BEHAVIORURNS)] IDispatch* behaviorUrns();
    [propput, id(DISPID_IHTMLELEMENT2_TAGURN)] void tagUrn(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_TAGURN)] BSTR tagUrn();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] void onbeforeeditfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] VARIANT onbeforeeditfocus();
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATEVALUE), hidden, restricted] long readyStateValue();
    [id(DISPID_IHTMLELEMENT2_GETELEMENTSBYTAGNAME)] IHTMLElementCollection* getElementsByTagName([in] BSTR v);
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUENUMBER), hidden] long uniqueNumber();
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUEID), hidden] BSTR uniqueID();
    [propget, id(DISPID_IHTMLDOMNODE_NODETYPE)] long nodeType();
    [propget, id(DISPID_IHTMLDOMNODE_PARENTNODE)] IHTMLDOMNode* parentNode();
    [id(DISPID_IHTMLDOMNODE_HASCHILDNODES)] VARIANT_BOOL hasChildNodes();
    [propget, id(DISPID_IHTMLDOMNODE_CHILDNODES)] IDispatch* childNodes();
    [propget, id(DISPID_IHTMLDOMNODE_ATTRIBUTES)] IDispatch* attributes();
    [id(DISPID_IHTMLDOMNODE_INSERTBEFORE)] IHTMLDOMNode* insertBefore([in] IHTMLDOMNode* newChild,[optional, in] VARIANT refChild);
    [id(DISPID_IHTMLDOMNODE_REMOVECHILD)] IHTMLDOMNode* removeChild([in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_REPLACECHILD)] IHTMLDOMNode* replaceChild([in] IHTMLDOMNode* newChild,[in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_CLONENODE)] IHTMLDOMNode* cloneNode([in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_REMOVENODE)] IHTMLDOMNode* removeNode([defaultvalue(0), in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_SWAPNODE)] IHTMLDOMNode* swapNode([in] IHTMLDOMNode* otherNode);
    [id(DISPID_IHTMLDOMNODE_REPLACENODE)] IHTMLDOMNode* replaceNode([in] IHTMLDOMNode* replacement);
    [id(DISPID_IHTMLDOMNODE_APPENDCHILD)] IHTMLDOMNode* appendChild([in] IHTMLDOMNode* newChild);
    [propget, id(DISPID_IHTMLDOMNODE_NODENAME)] BSTR nodeName();
    [propput, id(DISPID_IHTMLDOMNODE_NODEVALUE)] void nodeValue(VARIANT v);
    [propget, id(DISPID_IHTMLDOMNODE_NODEVALUE)] VARIANT nodeValue();
    [propget, id(DISPID_IHTMLDOMNODE_FIRSTCHILD)] IHTMLDOMNode* firstChild();
    [propget, id(DISPID_IHTMLDOMNODE_LASTCHILD)] IHTMLDOMNode* lastChild();
    [propget, id(DISPID_IHTMLDOMNODE_PREVIOUSSIBLING)] IHTMLDOMNode* previousSibling();
    [propget, id(DISPID_IHTMLDOMNODE_NEXTSIBLING)] IHTMLDOMNode* nextSibling();
    [propput, id(DISPID_IHTMLCOMMENTELEMENT_TEXT), displaybind, bindable] void text(BSTR v);
    [propget, id(DISPID_IHTMLCOMMENTELEMENT_TEXT), displaybind, bindable] BSTR text();
    [propput, id(DISPID_IHTMLCOMMENTELEMENT_ATOMIC), displaybind, bindable] void atomic(long v);
    [propget, id(DISPID_IHTMLCOMMENTELEMENT_ATOMIC), displaybind, bindable] long atomic();
};
[
    uuid(3050f317-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLCommentElement
{
    [default]           dispinterface DispHTMLCommentElement;
    [source, default]   dispinterface HTMLElementEvents;
    [source]            dispinterface HTMLElementEvents2;
                        interface IHTMLElement;
                        interface IHTMLElement2;
                        interface IHTMLUniqueName;
                        interface IHTMLDOMNode;
                        interface IHTMLCommentElement;
};
cpp_quote("EXTERN_C const GUID CLSID_CCommentElement;")
[
    odl,
    oleautomation,
    dual,
    uuid(3050f20a-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLPhraseElement : IDispatch
{
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f3f3-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLSpanElement : IDispatch
{
};
[
    hidden,
    uuid(3050f52d-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTMLPhraseElement
{
properties:
methods:
    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)] void setAttribute([in] BSTR strAttributeName,[in] VARIANT AttributeValue,[defaultvalue(1), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)] VARIANT getAttribute([in] BSTR strAttributeName,[defaultvalue(0), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)] VARIANT_BOOL removeAttribute([in] BSTR strAttributeName,[defaultvalue(1), in] LONG lFlags);
    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] void className(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] BSTR className();
    [propput, id(DISPID_IHTMLELEMENT_ID), bindable] void id(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_ID), bindable] BSTR id();
    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)] BSTR tagName();
    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)] IHTMLElement* parentElement();
    [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable] IHTMLStyle* style();
    [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] void onhelp(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] VARIANT onhelp();
    [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] void onclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] VARIANT onclick();
    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] void ondblclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] VARIANT ondblclick();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] void onkeydown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] VARIANT onkeydown();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] void onkeyup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] VARIANT onkeyup();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] void onkeypress(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] VARIANT onkeypress();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] void onmouseout(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] VARIANT onmouseout();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] void onmouseover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] VARIANT onmouseover();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] void onmousemove(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] VARIANT onmousemove();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] void onmousedown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] VARIANT onmousedown();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] void onmouseup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] VARIANT onmouseup();
    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)] IDispatch* document();
    [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] void title(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] BSTR title();
    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] void language(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] BSTR language();
    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] void onselectstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] VARIANT onselectstart();
    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)] void scrollIntoView([optional, in] VARIANT varargStart);
    [id(DISPID_IHTMLELEMENT_CONTAINS)] VARIANT_BOOL contains([in] IHTMLElement* pChild);
    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable] long sourceIndex();
    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)] VARIANT recordNumber();
    [propput, id(DISPID_IHTMLELEMENT_LANG)] void lang(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANG)] BSTR lang();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)] long offsetLeft();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)] long offsetTop();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)] long offsetWidth();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)] long offsetHeight();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)] IHTMLElement* offsetParent();
    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)] void innerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)] BSTR innerHTML();
    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)] void innerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)] BSTR innerText();
    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)] void outerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)] BSTR outerHTML();
    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)] void outerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)] BSTR outerText();
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)] void insertAdjacentHTML([in] BSTR where,[in] BSTR html);
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)] void insertAdjacentText([in] BSTR where,[in] BSTR text);
    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)] IHTMLElement* parentTextEdit();
    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)] VARIANT_BOOL isTextEdit();
    [id(DISPID_IHTMLELEMENT_CLICK)] void click();
    [propget, id(DISPID_IHTMLELEMENT_FILTERS)] IHTMLFiltersCollection* filters();
    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] void ondragstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] VARIANT ondragstart();
    [id(DISPID_IHTMLELEMENT_TOSTRING)] BSTR toString();
    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] void onbeforeupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] VARIANT onbeforeupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] void onafterupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] VARIANT onafterupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] void onerrorupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] VARIANT onerrorupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] void onrowexit(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] VARIANT onrowexit();
    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] void onrowenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] VARIANT onrowenter();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] void ondatasetchanged(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] VARIANT ondatasetchanged();
    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] void ondataavailable(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] VARIANT ondataavailable();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] void ondatasetcomplete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] VARIANT ondatasetcomplete();
    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] void onfilterchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] VARIANT onfilterchange();
    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)] IDispatch* children();
    [propget, id(DISPID_IHTMLELEMENT_ALL)] IDispatch* all();
    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)] BSTR scopeName();
    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)] void setCapture([defaultvalue(-1), in] VARIANT_BOOL containerCapture);
    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)] void releaseCapture();
    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] void onlosecapture(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] VARIANT onlosecapture();
    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)] BSTR componentFromPoint([in] long x,[in] long y);
    [id(DISPID_IHTMLELEMENT2_DOSCROLL)] void doScroll([optional, in] VARIANT component);
    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] void onscroll(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] VARIANT onscroll();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] void ondrag(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] VARIANT ondrag();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] void ondragend(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] VARIANT ondragend();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] void ondragenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] VARIANT ondragenter();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] void ondragover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] VARIANT ondragover();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] void ondragleave(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] VARIANT ondragleave();
    [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] void ondrop(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] VARIANT ondrop();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] void onbeforecut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] VARIANT onbeforecut();
    [propput, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] void oncut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] VARIANT oncut();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] void onbeforecopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] VARIANT onbeforecopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] void oncopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] VARIANT oncopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] void onbeforepaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] VARIANT onbeforepaste();
    [propput, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] void onpaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] VARIANT onpaste();
    [propget, id(DISPID_IHTMLELEMENT2_CURRENTSTYLE), nonbrowsable] IHTMLCurrentStyle* currentStyle();
    [propput, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] void onpropertychange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] VARIANT onpropertychange();
    [id(DISPID_IHTMLELEMENT2_GETCLIENTRECTS)] IHTMLRectCollection* getClientRects();
    [id(DISPID_IHTMLELEMENT2_GETBOUNDINGCLIENTRECT)] IHTMLRect* getBoundingClientRect();
    [id(DISPID_IHTMLELEMENT2_SETEXPRESSION)] void setExpression([in] BSTR propname,[in] BSTR expression,[defaultvalue(""), in] BSTR language);
    [id(DISPID_IHTMLELEMENT2_GETEXPRESSION)] VARIANT getExpression([in] BSTR propname);
    [id(DISPID_IHTMLELEMENT2_REMOVEEXPRESSION)] VARIANT_BOOL removeExpression([in] BSTR propname);
    [propput, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] void tabIndex(short v);
    [propget, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] short tabIndex();
    [id(DISPID_IHTMLELEMENT2_FOCUS)] void focus();
    [propput, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] void accessKey(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] BSTR accessKey();
    [propput, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] void onblur(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] VARIANT onblur();
    [propput, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] void onfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] VARIANT onfocus();
    [propput, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] void onresize(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] VARIANT onresize();
    [id(DISPID_IHTMLELEMENT2_BLUR)] void blur();
    [id(DISPID_IHTMLELEMENT2_ADDFILTER)] void addFilter([in] IUnknown* pUnk);
    [id(DISPID_IHTMLELEMENT2_REMOVEFILTER)] void removeFilter([in] IUnknown* pUnk);
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTHEIGHT), displaybind, bindable] long clientHeight();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTWIDTH), displaybind, bindable] long clientWidth();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTTOP), displaybind, bindable] long clientTop();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTLEFT), displaybind, bindable] long clientLeft();
    [id(DISPID_IHTMLELEMENT2_ATTACHEVENT)] VARIANT_BOOL attachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [id(DISPID_IHTMLELEMENT2_DETACHEVENT)] void detachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATE)] VARIANT readyState();
    [propput, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] void onreadystatechange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] VARIANT onreadystatechange();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] void onrowsdelete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] VARIANT onrowsdelete();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] void onrowsinserted(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] VARIANT onrowsinserted();
    [propput, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] void oncellchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] VARIANT oncellchange();
    [propput, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] void dir(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] BSTR dir();
    [id(DISPID_IHTMLELEMENT2_CREATECONTROLRANGE)] IDispatch* createControlRange();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLHEIGHT), displaybind, bindable] long scrollHeight();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLWIDTH), displaybind, bindable] long scrollWidth();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] void scrollTop(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] long scrollTop();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] void scrollLeft(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] long scrollLeft();
    [id(DISPID_IHTMLELEMENT2_CLEARATTRIBUTES)] void clearAttributes();
    [id(DISPID_IHTMLELEMENT2_MERGEATTRIBUTES)] void mergeAttributes([in] IHTMLElement* mergeThis);
    [propput, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] void oncontextmenu(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] VARIANT oncontextmenu();
    [id(DISPID_IHTMLELEMENT2_INSERTADJACENTELEMENT)] IHTMLElement* insertAdjacentElement([in] BSTR where,[in] IHTMLElement* insertedElement);
    [id(DISPID_IHTMLELEMENT2_APPLYELEMENT)] IHTMLElement* applyElement([in] IHTMLElement* apply,[in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_GETADJACENTTEXT)] BSTR getAdjacentText([in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_REPLACEADJACENTTEXT)] BSTR replaceAdjacentText([in] BSTR where,[in] BSTR newText);
    [propget, id(DISPID_IHTMLELEMENT2_CANHAVECHILDREN)] VARIANT_BOOL canHaveChildren();
    [id(DISPID_IHTMLELEMENT2_ADDBEHAVIOR)] long addBehavior([in] BSTR bstrUrl,[optional, in] VARIANT* pvarFactory);
    [id(DISPID_IHTMLELEMENT2_REMOVEBEHAVIOR)] VARIANT_BOOL removeBehavior([in] long cookie);
    [propget, id(DISPID_IHTMLELEMENT2_RUNTIMESTYLE), nonbrowsable] IHTMLStyle* runtimeStyle();
    [propget, id(DISPID_IHTMLELEMENT2_BEHAVIORURNS)] IDispatch* behaviorUrns();
    [propput, id(DISPID_IHTMLELEMENT2_TAGURN)] void tagUrn(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_TAGURN)] BSTR tagUrn();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] void onbeforeeditfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] VARIANT onbeforeeditfocus();
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATEVALUE), hidden, restricted] long readyStateValue();
    [id(DISPID_IHTMLELEMENT2_GETELEMENTSBYTAGNAME)] IHTMLElementCollection* getElementsByTagName([in] BSTR v);
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUENUMBER), hidden] long uniqueNumber();
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUEID), hidden] BSTR uniqueID();
    [propget, id(DISPID_IHTMLDOMNODE_NODETYPE)] long nodeType();
    [propget, id(DISPID_IHTMLDOMNODE_PARENTNODE)] IHTMLDOMNode* parentNode();
    [id(DISPID_IHTMLDOMNODE_HASCHILDNODES)] VARIANT_BOOL hasChildNodes();
    [propget, id(DISPID_IHTMLDOMNODE_CHILDNODES)] IDispatch* childNodes();
    [propget, id(DISPID_IHTMLDOMNODE_ATTRIBUTES)] IDispatch* attributes();
    [id(DISPID_IHTMLDOMNODE_INSERTBEFORE)] IHTMLDOMNode* insertBefore([in] IHTMLDOMNode* newChild,[optional, in] VARIANT refChild);
    [id(DISPID_IHTMLDOMNODE_REMOVECHILD)] IHTMLDOMNode* removeChild([in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_REPLACECHILD)] IHTMLDOMNode* replaceChild([in] IHTMLDOMNode* newChild,[in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_CLONENODE)] IHTMLDOMNode* cloneNode([in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_REMOVENODE)] IHTMLDOMNode* removeNode([defaultvalue(0), in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_SWAPNODE)] IHTMLDOMNode* swapNode([in] IHTMLDOMNode* otherNode);
    [id(DISPID_IHTMLDOMNODE_REPLACENODE)] IHTMLDOMNode* replaceNode([in] IHTMLDOMNode* replacement);
    [id(DISPID_IHTMLDOMNODE_APPENDCHILD)] IHTMLDOMNode* appendChild([in] IHTMLDOMNode* newChild);
    [propget, id(DISPID_IHTMLDOMNODE_NODENAME)] BSTR nodeName();
    [propput, id(DISPID_IHTMLDOMNODE_NODEVALUE)] void nodeValue(VARIANT v);
    [propget, id(DISPID_IHTMLDOMNODE_NODEVALUE)] VARIANT nodeValue();
    [propget, id(DISPID_IHTMLDOMNODE_FIRSTCHILD)] IHTMLDOMNode* firstChild();
    [propget, id(DISPID_IHTMLDOMNODE_LASTCHILD)] IHTMLDOMNode* lastChild();
    [propget, id(DISPID_IHTMLDOMNODE_PREVIOUSSIBLING)] IHTMLDOMNode* previousSibling();
    [propget, id(DISPID_IHTMLDOMNODE_NEXTSIBLING)] IHTMLDOMNode* nextSibling();
};
[
    uuid(3050f26e-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLPhraseElement
{
    [default]           dispinterface DispHTMLPhraseElement;
    [source, default]   dispinterface HTMLElementEvents;
                        interface IHTMLElement;
                        interface IHTMLElement2;
                        interface IHTMLUniqueName;
                        interface IHTMLDOMNode;
                        interface IHTMLPhraseElement;
};
cpp_quote("EXTERN_C const GUID CLSID_CPhraseElement;")
[
    hidden,
    uuid(3050f548-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTMLSpanElement
{
properties:
methods:
    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)] void setAttribute([in] BSTR strAttributeName,[in] VARIANT AttributeValue,[defaultvalue(1), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)] VARIANT getAttribute([in] BSTR strAttributeName,[defaultvalue(0), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)] VARIANT_BOOL removeAttribute([in] BSTR strAttributeName,[defaultvalue(1), in] LONG lFlags);
    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] void className(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] BSTR className();
    [propput, id(DISPID_IHTMLELEMENT_ID), bindable] void id(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_ID), bindable] BSTR id();
    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)] BSTR tagName();
    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)] IHTMLElement* parentElement();
    [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable] IHTMLStyle* style();
    [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] void onhelp(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] VARIANT onhelp();
    [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] void onclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] VARIANT onclick();
    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] void ondblclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] VARIANT ondblclick();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] void onkeydown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] VARIANT onkeydown();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] void onkeyup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] VARIANT onkeyup();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] void onkeypress(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] VARIANT onkeypress();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] void onmouseout(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] VARIANT onmouseout();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] void onmouseover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] VARIANT onmouseover();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] void onmousemove(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] VARIANT onmousemove();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] void onmousedown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] VARIANT onmousedown();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] void onmouseup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] VARIANT onmouseup();
    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)] IDispatch* document();
    [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] void title(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] BSTR title();
    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] void language(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] BSTR language();
    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] void onselectstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] VARIANT onselectstart();
    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)] void scrollIntoView([optional, in] VARIANT varargStart);
    [id(DISPID_IHTMLELEMENT_CONTAINS)] VARIANT_BOOL contains([in] IHTMLElement* pChild);
    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable] long sourceIndex();
    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)] VARIANT recordNumber();
    [propput, id(DISPID_IHTMLELEMENT_LANG)] void lang(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANG)] BSTR lang();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)] long offsetLeft();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)] long offsetTop();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)] long offsetWidth();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)] long offsetHeight();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)] IHTMLElement* offsetParent();
    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)] void innerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)] BSTR innerHTML();
    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)] void innerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)] BSTR innerText();
    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)] void outerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)] BSTR outerHTML();
    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)] void outerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)] BSTR outerText();
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)] void insertAdjacentHTML([in] BSTR where,[in] BSTR html);
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)] void insertAdjacentText([in] BSTR where,[in] BSTR text);
    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)] IHTMLElement* parentTextEdit();
    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)] VARIANT_BOOL isTextEdit();
    [id(DISPID_IHTMLELEMENT_CLICK)] void click();
    [propget, id(DISPID_IHTMLELEMENT_FILTERS)] IHTMLFiltersCollection* filters();
    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] void ondragstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] VARIANT ondragstart();
    [id(DISPID_IHTMLELEMENT_TOSTRING)] BSTR toString();
    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] void onbeforeupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] VARIANT onbeforeupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] void onafterupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] VARIANT onafterupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] void onerrorupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] VARIANT onerrorupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] void onrowexit(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] VARIANT onrowexit();
    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] void onrowenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] VARIANT onrowenter();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] void ondatasetchanged(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] VARIANT ondatasetchanged();
    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] void ondataavailable(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] VARIANT ondataavailable();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] void ondatasetcomplete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] VARIANT ondatasetcomplete();
    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] void onfilterchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] VARIANT onfilterchange();
    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)] IDispatch* children();
    [propget, id(DISPID_IHTMLELEMENT_ALL)] IDispatch* all();
    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)] BSTR scopeName();
    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)] void setCapture([defaultvalue(-1), in] VARIANT_BOOL containerCapture);
    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)] void releaseCapture();
    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] void onlosecapture(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] VARIANT onlosecapture();
    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)] BSTR componentFromPoint([in] long x,[in] long y);
    [id(DISPID_IHTMLELEMENT2_DOSCROLL)] void doScroll([optional, in] VARIANT component);
    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] void onscroll(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] VARIANT onscroll();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] void ondrag(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] VARIANT ondrag();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] void ondragend(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] VARIANT ondragend();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] void ondragenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] VARIANT ondragenter();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] void ondragover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] VARIANT ondragover();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] void ondragleave(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] VARIANT ondragleave();
    [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] void ondrop(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] VARIANT ondrop();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] void onbeforecut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] VARIANT onbeforecut();
    [propput, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] void oncut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] VARIANT oncut();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] void onbeforecopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] VARIANT onbeforecopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] void oncopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] VARIANT oncopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] void onbeforepaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] VARIANT onbeforepaste();
    [propput, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] void onpaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] VARIANT onpaste();
    [propget, id(DISPID_IHTMLELEMENT2_CURRENTSTYLE), nonbrowsable] IHTMLCurrentStyle* currentStyle();
    [propput, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] void onpropertychange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] VARIANT onpropertychange();
    [id(DISPID_IHTMLELEMENT2_GETCLIENTRECTS)] IHTMLRectCollection* getClientRects();
    [id(DISPID_IHTMLELEMENT2_GETBOUNDINGCLIENTRECT)] IHTMLRect* getBoundingClientRect();
    [id(DISPID_IHTMLELEMENT2_SETEXPRESSION)] void setExpression([in] BSTR propname,[in] BSTR expression,[defaultvalue(""), in] BSTR language);
    [id(DISPID_IHTMLELEMENT2_GETEXPRESSION)] VARIANT getExpression([in] BSTR propname);
    [id(DISPID_IHTMLELEMENT2_REMOVEEXPRESSION)] VARIANT_BOOL removeExpression([in] BSTR propname);
    [propput, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] void tabIndex(short v);
    [propget, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] short tabIndex();
    [id(DISPID_IHTMLELEMENT2_FOCUS)] void focus();
    [propput, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] void accessKey(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] BSTR accessKey();
    [propput, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] void onblur(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] VARIANT onblur();
    [propput, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] void onfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] VARIANT onfocus();
    [propput, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] void onresize(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] VARIANT onresize();
    [id(DISPID_IHTMLELEMENT2_BLUR)] void blur();
    [id(DISPID_IHTMLELEMENT2_ADDFILTER)] void addFilter([in] IUnknown* pUnk);
    [id(DISPID_IHTMLELEMENT2_REMOVEFILTER)] void removeFilter([in] IUnknown* pUnk);
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTHEIGHT), displaybind, bindable] long clientHeight();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTWIDTH), displaybind, bindable] long clientWidth();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTTOP), displaybind, bindable] long clientTop();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTLEFT), displaybind, bindable] long clientLeft();
    [id(DISPID_IHTMLELEMENT2_ATTACHEVENT)] VARIANT_BOOL attachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [id(DISPID_IHTMLELEMENT2_DETACHEVENT)] void detachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATE)] VARIANT readyState();
    [propput, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] void onreadystatechange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] VARIANT onreadystatechange();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] void onrowsdelete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] VARIANT onrowsdelete();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] void onrowsinserted(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] VARIANT onrowsinserted();
    [propput, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] void oncellchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] VARIANT oncellchange();
    [propput, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] void dir(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] BSTR dir();
    [id(DISPID_IHTMLELEMENT2_CREATECONTROLRANGE)] IDispatch* createControlRange();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLHEIGHT), displaybind, bindable] long scrollHeight();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLWIDTH), displaybind, bindable] long scrollWidth();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] void scrollTop(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] long scrollTop();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] void scrollLeft(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] long scrollLeft();
    [id(DISPID_IHTMLELEMENT2_CLEARATTRIBUTES)] void clearAttributes();
    [id(DISPID_IHTMLELEMENT2_MERGEATTRIBUTES)] void mergeAttributes([in] IHTMLElement* mergeThis);
    [propput, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] void oncontextmenu(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] VARIANT oncontextmenu();
    [id(DISPID_IHTMLELEMENT2_INSERTADJACENTELEMENT)] IHTMLElement* insertAdjacentElement([in] BSTR where,[in] IHTMLElement* insertedElement);
    [id(DISPID_IHTMLELEMENT2_APPLYELEMENT)] IHTMLElement* applyElement([in] IHTMLElement* apply,[in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_GETADJACENTTEXT)] BSTR getAdjacentText([in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_REPLACEADJACENTTEXT)] BSTR replaceAdjacentText([in] BSTR where,[in] BSTR newText);
    [propget, id(DISPID_IHTMLELEMENT2_CANHAVECHILDREN)] VARIANT_BOOL canHaveChildren();
    [id(DISPID_IHTMLELEMENT2_ADDBEHAVIOR)] long addBehavior([in] BSTR bstrUrl,[optional, in] VARIANT* pvarFactory);
    [id(DISPID_IHTMLELEMENT2_REMOVEBEHAVIOR)] VARIANT_BOOL removeBehavior([in] long cookie);
    [propget, id(DISPID_IHTMLELEMENT2_RUNTIMESTYLE), nonbrowsable] IHTMLStyle* runtimeStyle();
    [propget, id(DISPID_IHTMLELEMENT2_BEHAVIORURNS)] IDispatch* behaviorUrns();
    [propput, id(DISPID_IHTMLELEMENT2_TAGURN)] void tagUrn(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_TAGURN)] BSTR tagUrn();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] void onbeforeeditfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] VARIANT onbeforeeditfocus();
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATEVALUE), hidden, restricted] long readyStateValue();
    [id(DISPID_IHTMLELEMENT2_GETELEMENTSBYTAGNAME)] IHTMLElementCollection* getElementsByTagName([in] BSTR v);
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUENUMBER), hidden] long uniqueNumber();
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUEID), hidden] BSTR uniqueID();
    [propget, id(DISPID_IHTMLDOMNODE_NODETYPE)] long nodeType();
    [propget, id(DISPID_IHTMLDOMNODE_PARENTNODE)] IHTMLDOMNode* parentNode();
    [id(DISPID_IHTMLDOMNODE_HASCHILDNODES)] VARIANT_BOOL hasChildNodes();
    [propget, id(DISPID_IHTMLDOMNODE_CHILDNODES)] IDispatch* childNodes();
    [propget, id(DISPID_IHTMLDOMNODE_ATTRIBUTES)] IDispatch* attributes();
    [id(DISPID_IHTMLDOMNODE_INSERTBEFORE)] IHTMLDOMNode* insertBefore([in] IHTMLDOMNode* newChild,[optional, in] VARIANT refChild);
    [id(DISPID_IHTMLDOMNODE_REMOVECHILD)] IHTMLDOMNode* removeChild([in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_REPLACECHILD)] IHTMLDOMNode* replaceChild([in] IHTMLDOMNode* newChild,[in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_CLONENODE)] IHTMLDOMNode* cloneNode([in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_REMOVENODE)] IHTMLDOMNode* removeNode([defaultvalue(0), in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_SWAPNODE)] IHTMLDOMNode* swapNode([in] IHTMLDOMNode* otherNode);
    [id(DISPID_IHTMLDOMNODE_REPLACENODE)] IHTMLDOMNode* replaceNode([in] IHTMLDOMNode* replacement);
    [id(DISPID_IHTMLDOMNODE_APPENDCHILD)] IHTMLDOMNode* appendChild([in] IHTMLDOMNode* newChild);
    [propget, id(DISPID_IHTMLDOMNODE_NODENAME)] BSTR nodeName();
    [propput, id(DISPID_IHTMLDOMNODE_NODEVALUE)] void nodeValue(VARIANT v);
    [propget, id(DISPID_IHTMLDOMNODE_NODEVALUE)] VARIANT nodeValue();
    [propget, id(DISPID_IHTMLDOMNODE_FIRSTCHILD)] IHTMLDOMNode* firstChild();
    [propget, id(DISPID_IHTMLDOMNODE_LASTCHILD)] IHTMLDOMNode* lastChild();
    [propget, id(DISPID_IHTMLDOMNODE_PREVIOUSSIBLING)] IHTMLDOMNode* previousSibling();
    [propget, id(DISPID_IHTMLDOMNODE_NEXTSIBLING)] IHTMLDOMNode* nextSibling();
    [propput, id(DISPID_IHTMLDATABINDING_DATAFLD)] void dataFld(BSTR v);
    [propget, id(DISPID_IHTMLDATABINDING_DATAFLD)] BSTR dataFld();
    [propput, id(DISPID_IHTMLDATABINDING_DATASRC)] void dataSrc(BSTR v);
    [propget, id(DISPID_IHTMLDATABINDING_DATASRC)] BSTR dataSrc();
    [propput, id(DISPID_IHTMLDATABINDING_DATAFORMATAS)] void dataFormatAs(BSTR v);
    [propget, id(DISPID_IHTMLDATABINDING_DATAFORMATAS)] BSTR dataFormatAs();
};
[
    uuid(3050f3f5-98b4-11cf-bb82-00aa00bdce0b)
]
coclass HTMLSpanElement
{
    [default]           dispinterface DispHTMLSpanElement;
    [source, default]   dispinterface HTMLElementEvents;
                        interface IHTMLElement;
                        interface IHTMLElement2;
                        interface IHTMLUniqueName;
                        interface IHTMLDOMNode;
                        interface IHTMLDatabinding;
                        interface IHTMLPhraseElement;
                        interface IHTMLSpanElement;
                        interface IHTMLControlElement;
};
cpp_quote("EXTERN_C const GUID CLSID_CSpanElement;")
[
    hidden,
    uuid(3050f623-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface HTMLTableEvents2
{
properties:
methods:
    [id(DISPID_HTMLELEMENTEVENTS2_ONHELP)] VARIANT_BOOL onhelp([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCLICK)] VARIANT_BOOL onclick([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDBLCLICK)] VARIANT_BOOL ondblclick([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONKEYPRESS)] VARIANT_BOOL onkeypress([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONKEYDOWN)] void onkeydown([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONKEYUP)] void onkeyup([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEOUT)] void onmouseout([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEOVER)] void onmouseover([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEMOVE)] void onmousemove([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEDOWN)] void onmousedown([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEUP)] void onmouseup([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONSELECTSTART)] VARIANT_BOOL onselectstart([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONFILTERCHANGE)] void onfilterchange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGSTART)] VARIANT_BOOL ondragstart([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFOREUPDATE)] VARIANT_BOOL onbeforeupdate([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONAFTERUPDATE)] void onafterupdate([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONERRORUPDATE)] VARIANT_BOOL onerrorupdate([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWEXIT)] VARIANT_BOOL onrowexit([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWENTER)] void onrowenter([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDATASETCHANGED)] void ondatasetchanged([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDATAAVAILABLE)] void ondataavailable([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDATASETCOMPLETE)] void ondatasetcomplete([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONLOSECAPTURE)] void onlosecapture([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONPROPERTYCHANGE)] void onpropertychange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONSCROLL)] void onscroll([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONFOCUS)] void onfocus([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBLUR)] void onblur([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONRESIZE)] void onresize([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAG)] VARIANT_BOOL ondrag([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGEND)] void ondragend([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGENTER)] VARIANT_BOOL ondragenter([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGOVER)] VARIANT_BOOL ondragover([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGLEAVE)] void ondragleave([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDROP)] VARIANT_BOOL ondrop([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFORECUT)] VARIANT_BOOL onbeforecut([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCUT)] VARIANT_BOOL oncut([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFORECOPY)] VARIANT_BOOL onbeforecopy([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCOPY)] VARIANT_BOOL oncopy([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFOREPASTE)] VARIANT_BOOL onbeforepaste([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONPASTE)] VARIANT_BOOL onpaste([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCONTEXTMENU)] VARIANT_BOOL oncontextmenu([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWSDELETE)] void onrowsdelete([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWSINSERTED)] void onrowsinserted([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCELLCHANGE)] void oncellchange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONREADYSTATECHANGE)] void onreadystatechange([in] IHTMLEventObj* pEvtObj);
};
[
    hidden,
    uuid(3050f407-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface HTMLTableEvents
{
properties:
methods:
    [id(DISPID_HTMLELEMENTEVENTS_ONHELP)] VARIANT_BOOL onhelp();
    [id(DISPID_HTMLELEMENTEVENTS_ONCLICK)] VARIANT_BOOL onclick();
    [id(DISPID_HTMLELEMENTEVENTS_ONDBLCLICK)] VARIANT_BOOL ondblclick();
    [id(DISPID_HTMLELEMENTEVENTS_ONKEYPRESS)] VARIANT_BOOL onkeypress();
    [id(DISPID_HTMLELEMENTEVENTS_ONKEYDOWN)] void onkeydown();
    [id(DISPID_HTMLELEMENTEVENTS_ONKEYUP)] void onkeyup();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEOUT)] void onmouseout();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEOVER)] void onmouseover();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEMOVE)] void onmousemove();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEDOWN)] void onmousedown();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEUP)] void onmouseup();
    [id(DISPID_HTMLELEMENTEVENTS_ONSELECTSTART)] VARIANT_BOOL onselectstart();
    [id(DISPID_HTMLELEMENTEVENTS_ONFILTERCHANGE)] void onfilterchange();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGSTART)] VARIANT_BOOL ondragstart();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREUPDATE)] VARIANT_BOOL onbeforeupdate();
    [id(DISPID_HTMLELEMENTEVENTS_ONAFTERUPDATE)] void onafterupdate();
    [id(DISPID_HTMLELEMENTEVENTS_ONERRORUPDATE)] VARIANT_BOOL onerrorupdate();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWEXIT)] VARIANT_BOOL onrowexit();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWENTER)] void onrowenter();
    [id(DISPID_HTMLELEMENTEVENTS_ONDATASETCHANGED)] void ondatasetchanged();
    [id(DISPID_HTMLELEMENTEVENTS_ONDATAAVAILABLE)] void ondataavailable();
    [id(DISPID_HTMLELEMENTEVENTS_ONDATASETCOMPLETE)] void ondatasetcomplete();
    [id(DISPID_HTMLELEMENTEVENTS_ONLOSECAPTURE)] void onlosecapture();
    [id(DISPID_HTMLELEMENTEVENTS_ONPROPERTYCHANGE)] void onpropertychange();
    [id(DISPID_HTMLELEMENTEVENTS_ONSCROLL)] void onscroll();
    [id(DISPID_HTMLELEMENTEVENTS_ONFOCUS)] void onfocus();
    [id(DISPID_HTMLELEMENTEVENTS_ONBLUR)] void onblur();
    [id(DISPID_HTMLELEMENTEVENTS_ONRESIZE)] void onresize();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAG)] VARIANT_BOOL ondrag();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGEND)] void ondragend();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGENTER)] VARIANT_BOOL ondragenter();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGOVER)] VARIANT_BOOL ondragover();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGLEAVE)] void ondragleave();
    [id(DISPID_HTMLELEMENTEVENTS_ONDROP)] VARIANT_BOOL ondrop();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFORECUT)] VARIANT_BOOL onbeforecut();
    [id(DISPID_HTMLELEMENTEVENTS_ONCUT)] VARIANT_BOOL oncut();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFORECOPY)] VARIANT_BOOL onbeforecopy();
    [id(DISPID_HTMLELEMENTEVENTS_ONCOPY)] VARIANT_BOOL oncopy();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREPASTE)] VARIANT_BOOL onbeforepaste();
    [id(DISPID_HTMLELEMENTEVENTS_ONPASTE)] VARIANT_BOOL onpaste();
    [id(DISPID_HTMLELEMENTEVENTS_ONCONTEXTMENU)] VARIANT_BOOL oncontextmenu();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWSDELETE)] void onrowsdelete();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWSINSERTED)] void onrowsinserted();
    [id(DISPID_HTMLELEMENTEVENTS_ONCELLCHANGE)] void oncellchange();
    [id(DISPID_HTMLELEMENTEVENTS_ONREADYSTATECHANGE)] void onreadystatechange();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREEDITFOCUS)] void onbeforeeditfocus();
};
typedef enum _htmlFrame
{
    htmlFrameNotSet = 0,
    htmlFramevoid = 1,
    htmlFrameabove = 2,
    htmlFramebelow = 3,
    htmlFramehsides = 4,
    htmlFramelhs = 5,
    htmlFramerhs = 6,
    htmlFramevsides = 7,
    htmlFramebox = 8,
    htmlFrameborder = 9,
    htmlFrame_Max = 2147483647L
} htmlFrame;

typedef enum _htmlRules
{
    htmlRulesNotSet = 0,
    htmlRulesnone = 1,
    htmlRulesgroups = 2,
    htmlRulesrows = 3,
    htmlRulescols = 4,
    htmlRulesall = 5,
    htmlRules_Max = 2147483647L
} htmlRules;

typedef enum _htmlCellAlign
{
    htmlCellAlignNotSet = 0,
    htmlCellAlignLeft = 1,
    htmlCellAlignCenter = 2,
    htmlCellAlignRight = 3,
    htmlCellAlignMiddle = htmlCellAlignCenter,
    htmlCellAlign_Max = 2147483647L
} htmlCellAlign;

typedef enum _htmlCellVAlign
{
    htmlCellVAlignNotSet = 0,
    htmlCellVAlignTop = 1,
    htmlCellVAlignMiddle = 2,
    htmlCellVAlignBottom = 3,
    htmlCellVAlignBaseline = 4,
    htmlCellVAlignCenter = htmlCellVAlignMiddle,
    htmlCellVAlign_Max = 2147483647L
} htmlCellVAlign;

interface IHTMLTableSection;
[
    odl,
    oleautomation,
    dual,
    uuid(3050f21e-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLTable : IDispatch
{
    [propput, id(DISPID_IHTMLTABLE_COLS)] HRESULT cols([in] long v);
    [propget, id(DISPID_IHTMLTABLE_COLS)] HRESULT cols([retval, out] long * p);
    [propput, id(DISPID_IHTMLTABLE_BORDER)] HRESULT border([in] VARIANT v);
    [propget, id(DISPID_IHTMLTABLE_BORDER)] HRESULT border([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLTABLE_FRAME)] HRESULT frame([in] BSTR v);
    [propget, id(DISPID_IHTMLTABLE_FRAME)] HRESULT frame([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLTABLE_RULES)] HRESULT rules([in] BSTR v);
    [propget, id(DISPID_IHTMLTABLE_RULES)] HRESULT rules([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLTABLE_CELLSPACING)] HRESULT cellSpacing([in] VARIANT v);
    [propget, id(DISPID_IHTMLTABLE_CELLSPACING)] HRESULT cellSpacing([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLTABLE_CELLPADDING)] HRESULT cellPadding([in] VARIANT v);
    [propget, id(DISPID_IHTMLTABLE_CELLPADDING)] HRESULT cellPadding([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLTABLE_BACKGROUND)] HRESULT background([in] BSTR v);
    [propget, id(DISPID_IHTMLTABLE_BACKGROUND)] HRESULT background([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLTABLE_BGCOLOR)] HRESULT bgColor([in] VARIANT v);
    [propget, id(DISPID_IHTMLTABLE_BGCOLOR)] HRESULT bgColor([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLTABLE_BORDERCOLOR)] HRESULT borderColor([in] VARIANT v);
    [propget, id(DISPID_IHTMLTABLE_BORDERCOLOR)] HRESULT borderColor([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLTABLE_BORDERCOLORLIGHT)] HRESULT borderColorLight([in] VARIANT v);
    [propget, id(DISPID_IHTMLTABLE_BORDERCOLORLIGHT)] HRESULT borderColorLight([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLTABLE_BORDERCOLORDARK)] HRESULT borderColorDark([in] VARIANT v);
    [propget, id(DISPID_IHTMLTABLE_BORDERCOLORDARK)] HRESULT borderColorDark([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLTABLE_ALIGN)] HRESULT align([in] BSTR v);
    [propget, id(DISPID_IHTMLTABLE_ALIGN)] HRESULT align([retval, out] BSTR * p);
    [id(DISPID_IHTMLTABLE_REFRESH)] HRESULT refresh();
    [propget, id(DISPID_IHTMLTABLE_ROWS)] HRESULT rows([retval, out] IHTMLElementCollection* * p);
    [propput, id(DISPID_IHTMLTABLE_WIDTH)] HRESULT width([in] VARIANT v);
    [propget, id(DISPID_IHTMLTABLE_WIDTH)] HRESULT width([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLTABLE_HEIGHT)] HRESULT height([in] VARIANT v);
    [propget, id(DISPID_IHTMLTABLE_HEIGHT)] HRESULT height([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLTABLE_DATAPAGESIZE)] HRESULT dataPageSize([in] long v);
    [propget, id(DISPID_IHTMLTABLE_DATAPAGESIZE)] HRESULT dataPageSize([retval, out] long * p);
    [id(DISPID_IHTMLTABLE_NEXTPAGE)] HRESULT nextPage();
    [id(DISPID_IHTMLTABLE_PREVIOUSPAGE)] HRESULT previousPage();
    [propget, id(DISPID_IHTMLTABLE_THEAD)] HRESULT tHead([retval, out] IHTMLTableSection* * p);
    [propget, id(DISPID_IHTMLTABLE_TFOOT)] HRESULT tFoot([retval, out] IHTMLTableSection* * p);
    [propget, id(DISPID_IHTMLTABLE_TBODIES)] HRESULT tBodies([retval, out] IHTMLElementCollection* * p);
    [propget, id(DISPID_IHTMLTABLE_CAPTION)] HRESULT caption([retval, out] IHTMLTableCaption* * p);
    [id(DISPID_IHTMLTABLE_CREATETHEAD)] HRESULT createTHead([retval, out] IDispatch** head);
    [id(DISPID_IHTMLTABLE_DELETETHEAD)] HRESULT deleteTHead();
    [id(DISPID_IHTMLTABLE_CREATETFOOT)] HRESULT createTFoot([retval, out] IDispatch** foot);
    [id(DISPID_IHTMLTABLE_DELETETFOOT)] HRESULT deleteTFoot();
    [id(DISPID_IHTMLTABLE_CREATECAPTION)] HRESULT createCaption([retval, out] IHTMLTableCaption** caption);
    [id(DISPID_IHTMLTABLE_DELETECAPTION)] HRESULT deleteCaption();
    [id(DISPID_IHTMLTABLE_INSERTROW)] HRESULT insertRow([defaultvalue(-1), in] long index,[retval, out] IDispatch** row);
    [id(DISPID_IHTMLTABLE_DELETEROW)] HRESULT deleteRow([defaultvalue(-1), in] long index);
    [propget, id(DISPID_IHTMLTABLE_READYSTATE)] HRESULT readyState([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLTABLE_ONREADYSTATECHANGE), displaybind, bindable] HRESULT onreadystatechange([in] VARIANT v);
    [propget, id(DISPID_IHTMLTABLE_ONREADYSTATECHANGE), displaybind, bindable] HRESULT onreadystatechange([retval, out] VARIANT * p);
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f4ad-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLTable2 : IDispatch
{
    [id(DISPID_IHTMLTABLE2_FIRSTPAGE)] HRESULT firstPage();
    [id(DISPID_IHTMLTABLE2_LASTPAGE)] HRESULT lastPage();
    [propget, id(DISPID_IHTMLTABLE2_CELLS)] HRESULT cells([retval, out] IHTMLElementCollection* * p);
    [id(DISPID_IHTMLTABLE2_MOVEROW)] HRESULT moveRow([defaultvalue(-1), in] long indexFrom,[defaultvalue(-1), in] long indexTo,[retval, out] IDispatch** row);
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f23a-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLTableCol : IDispatch
{
    [propput, id(DISPID_IHTMLTABLECOL_SPAN)] HRESULT span([in] long v);
    [propget, id(DISPID_IHTMLTABLECOL_SPAN)] HRESULT span([retval, out] long * p);
    [propput, id(DISPID_IHTMLTABLECOL_WIDTH)] HRESULT width([in] VARIANT v);
    [propget, id(DISPID_IHTMLTABLECOL_WIDTH)] HRESULT width([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLTABLECOL_ALIGN)] HRESULT align([in] BSTR v);
    [propget, id(DISPID_IHTMLTABLECOL_ALIGN)] HRESULT align([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLTABLECOL_VALIGN)] HRESULT vAlign([in] BSTR v);
    [propget, id(DISPID_IHTMLTABLECOL_VALIGN)] HRESULT vAlign([retval, out] BSTR * p);
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f23b-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLTableSection : IDispatch
{
    [propput, id(DISPID_IHTMLTABLESECTION_ALIGN)] HRESULT align([in] BSTR v);
    [propget, id(DISPID_IHTMLTABLESECTION_ALIGN)] HRESULT align([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLTABLESECTION_VALIGN)] HRESULT vAlign([in] BSTR v);
    [propget, id(DISPID_IHTMLTABLESECTION_VALIGN)] HRESULT vAlign([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLTABLESECTION_BGCOLOR)] HRESULT bgColor([in] VARIANT v);
    [propget, id(DISPID_IHTMLTABLESECTION_BGCOLOR)] HRESULT bgColor([retval, out] VARIANT * p);
    [propget, id(DISPID_IHTMLTABLESECTION_ROWS)] HRESULT rows([retval, out] IHTMLElementCollection* * p);
    [id(DISPID_IHTMLTABLESECTION_INSERTROW)] HRESULT insertRow([defaultvalue(-1), in] long index,[retval, out] IDispatch** row);
    [id(DISPID_IHTMLTABLESECTION_DELETEROW)] HRESULT deleteRow([defaultvalue(-1), in] long index);
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f5c7-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLTableSection2 : IDispatch
{
    [id(DISPID_IHTMLTABLESECTION2_MOVEROW)] HRESULT moveRow([defaultvalue(-1), in] long indexFrom,[defaultvalue(-1), in] long indexTo,[retval, out] IDispatch** row);
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f23c-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLTableRow : IDispatch
{
    [propput, id(DISPID_IHTMLTABLEROW_ALIGN)] HRESULT align([in] BSTR v);
    [propget, id(DISPID_IHTMLTABLEROW_ALIGN)] HRESULT align([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLTABLEROW_VALIGN)] HRESULT vAlign([in] BSTR v);
    [propget, id(DISPID_IHTMLTABLEROW_VALIGN)] HRESULT vAlign([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLTABLEROW_BGCOLOR)] HRESULT bgColor([in] VARIANT v);
    [propget, id(DISPID_IHTMLTABLEROW_BGCOLOR)] HRESULT bgColor([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLTABLEROW_BORDERCOLOR)] HRESULT borderColor([in] VARIANT v);
    [propget, id(DISPID_IHTMLTABLEROW_BORDERCOLOR)] HRESULT borderColor([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLTABLEROW_BORDERCOLORLIGHT)] HRESULT borderColorLight([in] VARIANT v);
    [propget, id(DISPID_IHTMLTABLEROW_BORDERCOLORLIGHT)] HRESULT borderColorLight([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLTABLEROW_BORDERCOLORDARK)] HRESULT borderColorDark([in] VARIANT v);
    [propget, id(DISPID_IHTMLTABLEROW_BORDERCOLORDARK)] HRESULT borderColorDark([retval, out] VARIANT * p);
    [propget, id(DISPID_IHTMLTABLEROW_ROWINDEX)] HRESULT rowIndex([retval, out] long * p);
    [propget, id(DISPID_IHTMLTABLEROW_SECTIONROWINDEX)] HRESULT sectionRowIndex([retval, out] long * p);
    [propget, id(DISPID_IHTMLTABLEROW_CELLS)] HRESULT cells([retval, out] IHTMLElementCollection* * p);
    [id(DISPID_IHTMLTABLEROW_INSERTCELL)] HRESULT insertCell([defaultvalue(-1), in] long index,[retval, out] IDispatch** row);
    [id(DISPID_IHTMLTABLEROW_DELETECELL)] HRESULT deleteCell([defaultvalue(-1), in] long index);
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f4a1-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLTableRow2 : IDispatch
{
    [propput, id(DISPID_IHTMLTABLEROW2_HEIGHT)] HRESULT height([in] VARIANT v);
    [propget, id(DISPID_IHTMLTABLEROW2_HEIGHT)] HRESULT height([retval, out] VARIANT * p);
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f413-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLTableRowMetrics : IDispatch
{
    [propget, id(DISPID_IHTMLTABLEROWMETRICS_CLIENTHEIGHT), displaybind, bindable] HRESULT clientHeight([retval, out] long * p);
    [propget, id(DISPID_IHTMLTABLEROWMETRICS_CLIENTWIDTH), displaybind, bindable] HRESULT clientWidth([retval, out] long * p);
    [propget, id(DISPID_IHTMLTABLEROWMETRICS_CLIENTTOP), displaybind, bindable] HRESULT clientTop([retval, out] long * p);
    [propget, id(DISPID_IHTMLTABLEROWMETRICS_CLIENTLEFT), displaybind, bindable] HRESULT clientLeft([retval, out] long * p);
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f23d-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLTableCell : IDispatch
{
    [propput, id(DISPID_IHTMLTABLECELL_ROWSPAN)] HRESULT rowSpan([in] long v);
    [propget, id(DISPID_IHTMLTABLECELL_ROWSPAN)] HRESULT rowSpan([retval, out] long * p);
    [propput, id(DISPID_IHTMLTABLECELL_COLSPAN)] HRESULT colSpan([in] long v);
    [propget, id(DISPID_IHTMLTABLECELL_COLSPAN)] HRESULT colSpan([retval, out] long * p);
    [propput, id(DISPID_IHTMLTABLECELL_ALIGN)] HRESULT align([in] BSTR v);
    [propget, id(DISPID_IHTMLTABLECELL_ALIGN)] HRESULT align([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLTABLECELL_VALIGN)] HRESULT vAlign([in] BSTR v);
    [propget, id(DISPID_IHTMLTABLECELL_VALIGN)] HRESULT vAlign([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLTABLECELL_BGCOLOR)] HRESULT bgColor([in] VARIANT v);
    [propget, id(DISPID_IHTMLTABLECELL_BGCOLOR)] HRESULT bgColor([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLTABLECELL_NOWRAP)] HRESULT noWrap([in] VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLTABLECELL_NOWRAP)] HRESULT noWrap([retval, out] VARIANT_BOOL * p);
    [propput, id(DISPID_IHTMLTABLECELL_BACKGROUND)] HRESULT background([in] BSTR v);
    [propget, id(DISPID_IHTMLTABLECELL_BACKGROUND)] HRESULT background([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLTABLECELL_BORDERCOLOR)] HRESULT borderColor([in] VARIANT v);
    [propget, id(DISPID_IHTMLTABLECELL_BORDERCOLOR)] HRESULT borderColor([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLTABLECELL_BORDERCOLORLIGHT)] HRESULT borderColorLight([in] VARIANT v);
    [propget, id(DISPID_IHTMLTABLECELL_BORDERCOLORLIGHT)] HRESULT borderColorLight([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLTABLECELL_BORDERCOLORDARK)] HRESULT borderColorDark([in] VARIANT v);
    [propget, id(DISPID_IHTMLTABLECELL_BORDERCOLORDARK)] HRESULT borderColorDark([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLTABLECELL_WIDTH)] HRESULT width([in] VARIANT v);
    [propget, id(DISPID_IHTMLTABLECELL_WIDTH)] HRESULT width([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLTABLECELL_HEIGHT)] HRESULT height([in] VARIANT v);
    [propget, id(DISPID_IHTMLTABLECELL_HEIGHT)] HRESULT height([retval, out] VARIANT * p);
    [propget, id(DISPID_IHTMLTABLECELL_CELLINDEX)] HRESULT cellIndex([retval, out] long * p);
};
[
    hidden,
    uuid(3050f532-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTMLTable
{
properties:
methods:
    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)] void setAttribute([in] BSTR strAttributeName,[in] VARIANT AttributeValue,[defaultvalue(1), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)] VARIANT getAttribute([in] BSTR strAttributeName,[defaultvalue(0), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)] VARIANT_BOOL removeAttribute([in] BSTR strAttributeName,[defaultvalue(1), in] LONG lFlags);
    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] void className(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] BSTR className();
    [propput, id(DISPID_IHTMLELEMENT_ID), bindable] void id(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_ID), bindable] BSTR id();
    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)] BSTR tagName();
    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)] IHTMLElement* parentElement();
    [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable] IHTMLStyle* style();
    [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] void onhelp(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] VARIANT onhelp();
    [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] void onclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] VARIANT onclick();
    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] void ondblclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] VARIANT ondblclick();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] void onkeydown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] VARIANT onkeydown();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] void onkeyup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] VARIANT onkeyup();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] void onkeypress(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] VARIANT onkeypress();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] void onmouseout(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] VARIANT onmouseout();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] void onmouseover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] VARIANT onmouseover();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] void onmousemove(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] VARIANT onmousemove();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] void onmousedown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] VARIANT onmousedown();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] void onmouseup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] VARIANT onmouseup();
    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)] IDispatch* document();
    [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] void title(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] BSTR title();
    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] void language(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] BSTR language();
    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] void onselectstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] VARIANT onselectstart();
    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)] void scrollIntoView([optional, in] VARIANT varargStart);
    [id(DISPID_IHTMLELEMENT_CONTAINS)] VARIANT_BOOL contains([in] IHTMLElement* pChild);
    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable] long sourceIndex();
    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)] VARIANT recordNumber();
    [propput, id(DISPID_IHTMLELEMENT_LANG)] void lang(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANG)] BSTR lang();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)] long offsetLeft();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)] long offsetTop();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)] long offsetWidth();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)] long offsetHeight();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)] IHTMLElement* offsetParent();
    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)] void innerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)] BSTR innerHTML();
    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)] void innerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)] BSTR innerText();
    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)] void outerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)] BSTR outerHTML();
    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)] void outerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)] BSTR outerText();
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)] void insertAdjacentHTML([in] BSTR where,[in] BSTR html);
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)] void insertAdjacentText([in] BSTR where,[in] BSTR text);
    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)] IHTMLElement* parentTextEdit();
    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)] VARIANT_BOOL isTextEdit();
    [id(DISPID_IHTMLELEMENT_CLICK)] void click();
    [propget, id(DISPID_IHTMLELEMENT_FILTERS)] IHTMLFiltersCollection* filters();
    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] void ondragstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] VARIANT ondragstart();
    [id(DISPID_IHTMLELEMENT_TOSTRING)] BSTR toString();
    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] void onbeforeupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] VARIANT onbeforeupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] void onafterupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] VARIANT onafterupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] void onerrorupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] VARIANT onerrorupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] void onrowexit(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] VARIANT onrowexit();
    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] void onrowenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] VARIANT onrowenter();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] void ondatasetchanged(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] VARIANT ondatasetchanged();
    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] void ondataavailable(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] VARIANT ondataavailable();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] void ondatasetcomplete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] VARIANT ondatasetcomplete();
    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] void onfilterchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] VARIANT onfilterchange();
    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)] IDispatch* children();
    [propget, id(DISPID_IHTMLELEMENT_ALL)] IDispatch* all();
    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)] BSTR scopeName();
    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)] void setCapture([defaultvalue(-1), in] VARIANT_BOOL containerCapture);
    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)] void releaseCapture();
    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] void onlosecapture(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] VARIANT onlosecapture();
    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)] BSTR componentFromPoint([in] long x,[in] long y);
    [id(DISPID_IHTMLELEMENT2_DOSCROLL)] void doScroll([optional, in] VARIANT component);
    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] void onscroll(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] VARIANT onscroll();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] void ondrag(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] VARIANT ondrag();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] void ondragend(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] VARIANT ondragend();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] void ondragenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] VARIANT ondragenter();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] void ondragover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] VARIANT ondragover();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] void ondragleave(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] VARIANT ondragleave();
    [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] void ondrop(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] VARIANT ondrop();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] void onbeforecut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] VARIANT onbeforecut();
    [propput, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] void oncut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] VARIANT oncut();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] void onbeforecopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] VARIANT onbeforecopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] void oncopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] VARIANT oncopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] void onbeforepaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] VARIANT onbeforepaste();
    [propput, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] void onpaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] VARIANT onpaste();
    [propget, id(DISPID_IHTMLELEMENT2_CURRENTSTYLE), nonbrowsable] IHTMLCurrentStyle* currentStyle();
    [propput, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] void onpropertychange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] VARIANT onpropertychange();
    [id(DISPID_IHTMLELEMENT2_GETCLIENTRECTS)] IHTMLRectCollection* getClientRects();
    [id(DISPID_IHTMLELEMENT2_GETBOUNDINGCLIENTRECT)] IHTMLRect* getBoundingClientRect();
    [id(DISPID_IHTMLELEMENT2_SETEXPRESSION)] void setExpression([in] BSTR propname,[in] BSTR expression,[defaultvalue(""), in] BSTR language);
    [id(DISPID_IHTMLELEMENT2_GETEXPRESSION)] VARIANT getExpression([in] BSTR propname);
    [id(DISPID_IHTMLELEMENT2_REMOVEEXPRESSION)] VARIANT_BOOL removeExpression([in] BSTR propname);
    [propput, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] void tabIndex(short v);
    [propget, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] short tabIndex();
    [id(DISPID_IHTMLELEMENT2_FOCUS)] void focus();
    [propput, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] void accessKey(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] BSTR accessKey();
    [propput, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] void onblur(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] VARIANT onblur();
    [propput, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] void onfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] VARIANT onfocus();
    [propput, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] void onresize(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] VARIANT onresize();
    [id(DISPID_IHTMLELEMENT2_BLUR)] void blur();
    [id(DISPID_IHTMLELEMENT2_ADDFILTER)] void addFilter([in] IUnknown* pUnk);
    [id(DISPID_IHTMLELEMENT2_REMOVEFILTER)] void removeFilter([in] IUnknown* pUnk);
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTHEIGHT), displaybind, bindable] long clientHeight();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTWIDTH), displaybind, bindable] long clientWidth();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTTOP), displaybind, bindable] long clientTop();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTLEFT), displaybind, bindable] long clientLeft();
    [id(DISPID_IHTMLELEMENT2_ATTACHEVENT)] VARIANT_BOOL attachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [id(DISPID_IHTMLELEMENT2_DETACHEVENT)] void detachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATE)] VARIANT readyState();
    [propput, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] void onreadystatechange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] VARIANT onreadystatechange();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] void onrowsdelete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] VARIANT onrowsdelete();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] void onrowsinserted(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] VARIANT onrowsinserted();
    [propput, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] void oncellchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] VARIANT oncellchange();
    [propput, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] void dir(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] BSTR dir();
    [id(DISPID_IHTMLELEMENT2_CREATECONTROLRANGE)] IDispatch* createControlRange();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLHEIGHT), displaybind, bindable] long scrollHeight();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLWIDTH), displaybind, bindable] long scrollWidth();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] void scrollTop(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] long scrollTop();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] void scrollLeft(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] long scrollLeft();
    [id(DISPID_IHTMLELEMENT2_CLEARATTRIBUTES)] void clearAttributes();
    [id(DISPID_IHTMLELEMENT2_MERGEATTRIBUTES)] void mergeAttributes([in] IHTMLElement* mergeThis);
    [propput, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] void oncontextmenu(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] VARIANT oncontextmenu();
    [id(DISPID_IHTMLELEMENT2_INSERTADJACENTELEMENT)] IHTMLElement* insertAdjacentElement([in] BSTR where,[in] IHTMLElement* insertedElement);
    [id(DISPID_IHTMLELEMENT2_APPLYELEMENT)] IHTMLElement* applyElement([in] IHTMLElement* apply,[in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_GETADJACENTTEXT)] BSTR getAdjacentText([in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_REPLACEADJACENTTEXT)] BSTR replaceAdjacentText([in] BSTR where,[in] BSTR newText);
    [propget, id(DISPID_IHTMLELEMENT2_CANHAVECHILDREN)] VARIANT_BOOL canHaveChildren();
    [id(DISPID_IHTMLELEMENT2_ADDBEHAVIOR)] long addBehavior([in] BSTR bstrUrl,[optional, in] VARIANT* pvarFactory);
    [id(DISPID_IHTMLELEMENT2_REMOVEBEHAVIOR)] VARIANT_BOOL removeBehavior([in] long cookie);
    [propget, id(DISPID_IHTMLELEMENT2_RUNTIMESTYLE), nonbrowsable] IHTMLStyle* runtimeStyle();
    [propget, id(DISPID_IHTMLELEMENT2_BEHAVIORURNS)] IDispatch* behaviorUrns();
    [propput, id(DISPID_IHTMLELEMENT2_TAGURN)] void tagUrn(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_TAGURN)] BSTR tagUrn();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] void onbeforeeditfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] VARIANT onbeforeeditfocus();
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATEVALUE), hidden, restricted] long readyStateValue();
    [id(DISPID_IHTMLELEMENT2_GETELEMENTSBYTAGNAME)] IHTMLElementCollection* getElementsByTagName([in] BSTR v);
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUENUMBER), hidden] long uniqueNumber();
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUEID), hidden] BSTR uniqueID();
    [propget, id(DISPID_IHTMLDOMNODE_NODETYPE)] long nodeType();
    [propget, id(DISPID_IHTMLDOMNODE_PARENTNODE)] IHTMLDOMNode* parentNode();
    [id(DISPID_IHTMLDOMNODE_HASCHILDNODES)] VARIANT_BOOL hasChildNodes();
    [propget, id(DISPID_IHTMLDOMNODE_CHILDNODES)] IDispatch* childNodes();
    [propget, id(DISPID_IHTMLDOMNODE_ATTRIBUTES)] IDispatch* attributes();
    [id(DISPID_IHTMLDOMNODE_INSERTBEFORE)] IHTMLDOMNode* insertBefore([in] IHTMLDOMNode* newChild,[optional, in] VARIANT refChild);
    [id(DISPID_IHTMLDOMNODE_REMOVECHILD)] IHTMLDOMNode* removeChild([in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_REPLACECHILD)] IHTMLDOMNode* replaceChild([in] IHTMLDOMNode* newChild,[in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_CLONENODE)] IHTMLDOMNode* cloneNode([in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_REMOVENODE)] IHTMLDOMNode* removeNode([defaultvalue(0), in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_SWAPNODE)] IHTMLDOMNode* swapNode([in] IHTMLDOMNode* otherNode);
    [id(DISPID_IHTMLDOMNODE_REPLACENODE)] IHTMLDOMNode* replaceNode([in] IHTMLDOMNode* replacement);
    [id(DISPID_IHTMLDOMNODE_APPENDCHILD)] IHTMLDOMNode* appendChild([in] IHTMLDOMNode* newChild);
    [propget, id(DISPID_IHTMLDOMNODE_NODENAME)] BSTR nodeName();
    [propput, id(DISPID_IHTMLDOMNODE_NODEVALUE)] void nodeValue(VARIANT v);
    [propget, id(DISPID_IHTMLDOMNODE_NODEVALUE)] VARIANT nodeValue();
    [propget, id(DISPID_IHTMLDOMNODE_FIRSTCHILD)] IHTMLDOMNode* firstChild();
    [propget, id(DISPID_IHTMLDOMNODE_LASTCHILD)] IHTMLDOMNode* lastChild();
    [propget, id(DISPID_IHTMLDOMNODE_PREVIOUSSIBLING)] IHTMLDOMNode* previousSibling();
    [propget, id(DISPID_IHTMLDOMNODE_NEXTSIBLING)] IHTMLDOMNode* nextSibling();
    [propput, id(DISPID_IHTMLDATABINDING_DATAFLD)] void dataFld(BSTR v);
    [propget, id(DISPID_IHTMLDATABINDING_DATAFLD)] BSTR dataFld();
    [propput, id(DISPID_IHTMLDATABINDING_DATASRC)] void dataSrc(BSTR v);
    [propget, id(DISPID_IHTMLDATABINDING_DATASRC)] BSTR dataSrc();
    [propput, id(DISPID_IHTMLDATABINDING_DATAFORMATAS)] void dataFormatAs(BSTR v);
    [propget, id(DISPID_IHTMLDATABINDING_DATAFORMATAS)] BSTR dataFormatAs();
    [propput, id(DISPID_IHTMLTABLE_COLS)] void cols(long v);
    [propget, id(DISPID_IHTMLTABLE_COLS)] long cols();
    [propput, id(DISPID_IHTMLTABLE_BORDER)] void border(VARIANT v);
    [propget, id(DISPID_IHTMLTABLE_BORDER)] VARIANT border();
    [propput, id(DISPID_IHTMLTABLE_FRAME)] void frame(BSTR v);
    [propget, id(DISPID_IHTMLTABLE_FRAME)] BSTR frame();
    [propput, id(DISPID_IHTMLTABLE_RULES)] void rules(BSTR v);
    [propget, id(DISPID_IHTMLTABLE_RULES)] BSTR rules();
    [propput, id(DISPID_IHTMLTABLE_CELLSPACING)] void cellSpacing(VARIANT v);
    [propget, id(DISPID_IHTMLTABLE_CELLSPACING)] VARIANT cellSpacing();
    [propput, id(DISPID_IHTMLTABLE_CELLPADDING)] void cellPadding(VARIANT v);
    [propget, id(DISPID_IHTMLTABLE_CELLPADDING)] VARIANT cellPadding();
    [propput, id(DISPID_IHTMLTABLE_BACKGROUND)] void background(BSTR v);
    [propget, id(DISPID_IHTMLTABLE_BACKGROUND)] BSTR background();
    [propput, id(DISPID_IHTMLTABLE_BGCOLOR)] void bgColor(VARIANT v);
    [propget, id(DISPID_IHTMLTABLE_BGCOLOR)] VARIANT bgColor();
    [propput, id(DISPID_IHTMLTABLE_BORDERCOLOR)] void borderColor(VARIANT v);
    [propget, id(DISPID_IHTMLTABLE_BORDERCOLOR)] VARIANT borderColor();
    [propput, id(DISPID_IHTMLTABLE_BORDERCOLORLIGHT)] void borderColorLight(VARIANT v);
    [propget, id(DISPID_IHTMLTABLE_BORDERCOLORLIGHT)] VARIANT borderColorLight();
    [propput, id(DISPID_IHTMLTABLE_BORDERCOLORDARK)] void borderColorDark(VARIANT v);
    [propget, id(DISPID_IHTMLTABLE_BORDERCOLORDARK)] VARIANT borderColorDark();
    [propput, id(DISPID_IHTMLTABLE_ALIGN)] void align(BSTR v);
    [propget, id(DISPID_IHTMLTABLE_ALIGN)] BSTR align();
    [id(DISPID_IHTMLTABLE_REFRESH)] void refresh();
    [propget, id(DISPID_IHTMLTABLE_ROWS)] IHTMLElementCollection* rows();
    [propput, id(DISPID_IHTMLTABLE_WIDTH)] void width(VARIANT v);
    [propget, id(DISPID_IHTMLTABLE_WIDTH)] VARIANT width();
    [propput, id(DISPID_IHTMLTABLE_HEIGHT)] void height(VARIANT v);
    [propget, id(DISPID_IHTMLTABLE_HEIGHT)] VARIANT height();
    [propput, id(DISPID_IHTMLTABLE_DATAPAGESIZE)] void dataPageSize(long v);
    [propget, id(DISPID_IHTMLTABLE_DATAPAGESIZE)] long dataPageSize();
    [id(DISPID_IHTMLTABLE_NEXTPAGE)] void nextPage();
    [id(DISPID_IHTMLTABLE_PREVIOUSPAGE)] void previousPage();
    [propget, id(DISPID_IHTMLTABLE_THEAD)] IHTMLTableSection* tHead();
    [propget, id(DISPID_IHTMLTABLE_TFOOT)] IHTMLTableSection* tFoot();
    [propget, id(DISPID_IHTMLTABLE_TBODIES)] IHTMLElementCollection* tBodies();
    [propget, id(DISPID_IHTMLTABLE_CAPTION)] IHTMLTableCaption* caption();
    [id(DISPID_IHTMLTABLE_CREATETHEAD)] IDispatch* createTHead();
    [id(DISPID_IHTMLTABLE_DELETETHEAD)] void deleteTHead();
    [id(DISPID_IHTMLTABLE_CREATETFOOT)] IDispatch* createTFoot();
    [id(DISPID_IHTMLTABLE_DELETETFOOT)] void deleteTFoot();
    [id(DISPID_IHTMLTABLE_CREATECAPTION)] IHTMLTableCaption* createCaption();
    [id(DISPID_IHTMLTABLE_DELETECAPTION)] void deleteCaption();
    [id(DISPID_IHTMLTABLE_INSERTROW)] IDispatch* insertRow([defaultvalue(-1), in] long index);
    [id(DISPID_IHTMLTABLE_DELETEROW)] void deleteRow([defaultvalue(-1), in] long index);
    [id(DISPID_IHTMLTABLE2_FIRSTPAGE)] void firstPage();
    [id(DISPID_IHTMLTABLE2_LASTPAGE)] void lastPage();
    [propget, id(DISPID_IHTMLTABLE2_CELLS)] IHTMLElementCollection* cells();
    [id(DISPID_IHTMLTABLE2_MOVEROW)] IDispatch* moveRow([defaultvalue(-1), in] long indexFrom,[defaultvalue(-1), in] long indexTo);
};
[
    uuid(3050f26b-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLTable
{
    [default]           dispinterface DispHTMLTable;
    [source, default]   dispinterface HTMLTableEvents;
    [source]            dispinterface HTMLTableEvents2;
                        interface IHTMLElement;
                        interface IHTMLElement2;
                        interface IHTMLUniqueName;
                        interface IHTMLDOMNode;
                        interface IHTMLDatabinding;
                        interface IHTMLControlElement;
                        interface IHTMLTable;
                        interface IHTMLTable2;
};
cpp_quote("EXTERN_C const GUID CLSID_CTable;")
[
    hidden,
    uuid(3050f533-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTMLTableCol
{
properties:
methods:
    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)] void setAttribute([in] BSTR strAttributeName,[in] VARIANT AttributeValue,[defaultvalue(1), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)] VARIANT getAttribute([in] BSTR strAttributeName,[defaultvalue(0), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)] VARIANT_BOOL removeAttribute([in] BSTR strAttributeName,[defaultvalue(1), in] LONG lFlags);
    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] void className(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] BSTR className();
    [propput, id(DISPID_IHTMLELEMENT_ID), bindable] void id(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_ID), bindable] BSTR id();
    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)] BSTR tagName();
    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)] IHTMLElement* parentElement();
    [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable] IHTMLStyle* style();
    [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] void onhelp(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] VARIANT onhelp();
    [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] void onclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] VARIANT onclick();
    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] void ondblclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] VARIANT ondblclick();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] void onkeydown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] VARIANT onkeydown();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] void onkeyup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] VARIANT onkeyup();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] void onkeypress(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] VARIANT onkeypress();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] void onmouseout(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] VARIANT onmouseout();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] void onmouseover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] VARIANT onmouseover();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] void onmousemove(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] VARIANT onmousemove();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] void onmousedown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] VARIANT onmousedown();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] void onmouseup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] VARIANT onmouseup();
    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)] IDispatch* document();
    [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] void title(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] BSTR title();
    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] void language(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] BSTR language();
    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] void onselectstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] VARIANT onselectstart();
    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)] void scrollIntoView([optional, in] VARIANT varargStart);
    [id(DISPID_IHTMLELEMENT_CONTAINS)] VARIANT_BOOL contains([in] IHTMLElement* pChild);
    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable] long sourceIndex();
    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)] VARIANT recordNumber();
    [propput, id(DISPID_IHTMLELEMENT_LANG)] void lang(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANG)] BSTR lang();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)] long offsetLeft();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)] long offsetTop();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)] long offsetWidth();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)] long offsetHeight();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)] IHTMLElement* offsetParent();
    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)] void innerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)] BSTR innerHTML();
    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)] void innerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)] BSTR innerText();
    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)] void outerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)] BSTR outerHTML();
    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)] void outerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)] BSTR outerText();
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)] void insertAdjacentHTML([in] BSTR where,[in] BSTR html);
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)] void insertAdjacentText([in] BSTR where,[in] BSTR text);
    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)] IHTMLElement* parentTextEdit();
    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)] VARIANT_BOOL isTextEdit();
    [id(DISPID_IHTMLELEMENT_CLICK)] void click();
    [propget, id(DISPID_IHTMLELEMENT_FILTERS)] IHTMLFiltersCollection* filters();
    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] void ondragstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] VARIANT ondragstart();
    [id(DISPID_IHTMLELEMENT_TOSTRING)] BSTR toString();
    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] void onbeforeupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] VARIANT onbeforeupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] void onafterupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] VARIANT onafterupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] void onerrorupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] VARIANT onerrorupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] void onrowexit(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] VARIANT onrowexit();
    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] void onrowenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] VARIANT onrowenter();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] void ondatasetchanged(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] VARIANT ondatasetchanged();
    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] void ondataavailable(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] VARIANT ondataavailable();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] void ondatasetcomplete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] VARIANT ondatasetcomplete();
    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] void onfilterchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] VARIANT onfilterchange();
    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)] IDispatch* children();
    [propget, id(DISPID_IHTMLELEMENT_ALL)] IDispatch* all();
    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)] BSTR scopeName();
    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)] void setCapture([defaultvalue(-1), in] VARIANT_BOOL containerCapture);
    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)] void releaseCapture();
    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] void onlosecapture(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] VARIANT onlosecapture();
    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)] BSTR componentFromPoint([in] long x,[in] long y);
    [id(DISPID_IHTMLELEMENT2_DOSCROLL)] void doScroll([optional, in] VARIANT component);
    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] void onscroll(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] VARIANT onscroll();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] void ondrag(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] VARIANT ondrag();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] void ondragend(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] VARIANT ondragend();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] void ondragenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] VARIANT ondragenter();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] void ondragover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] VARIANT ondragover();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] void ondragleave(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] VARIANT ondragleave();
    [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] void ondrop(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] VARIANT ondrop();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] void onbeforecut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] VARIANT onbeforecut();
    [propput, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] void oncut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] VARIANT oncut();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] void onbeforecopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] VARIANT onbeforecopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] void oncopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] VARIANT oncopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] void onbeforepaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] VARIANT onbeforepaste();
    [propput, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] void onpaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] VARIANT onpaste();
    [propget, id(DISPID_IHTMLELEMENT2_CURRENTSTYLE), nonbrowsable] IHTMLCurrentStyle* currentStyle();
    [propput, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] void onpropertychange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] VARIANT onpropertychange();
    [id(DISPID_IHTMLELEMENT2_GETCLIENTRECTS)] IHTMLRectCollection* getClientRects();
    [id(DISPID_IHTMLELEMENT2_GETBOUNDINGCLIENTRECT)] IHTMLRect* getBoundingClientRect();
    [id(DISPID_IHTMLELEMENT2_SETEXPRESSION)] void setExpression([in] BSTR propname,[in] BSTR expression,[defaultvalue(""), in] BSTR language);
    [id(DISPID_IHTMLELEMENT2_GETEXPRESSION)] VARIANT getExpression([in] BSTR propname);
    [id(DISPID_IHTMLELEMENT2_REMOVEEXPRESSION)] VARIANT_BOOL removeExpression([in] BSTR propname);
    [propput, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] void tabIndex(short v);
    [propget, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] short tabIndex();
    [id(DISPID_IHTMLELEMENT2_FOCUS)] void focus();
    [propput, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] void accessKey(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] BSTR accessKey();
    [propput, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] void onblur(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] VARIANT onblur();
    [propput, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] void onfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] VARIANT onfocus();
    [propput, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] void onresize(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] VARIANT onresize();
    [id(DISPID_IHTMLELEMENT2_BLUR)] void blur();
    [id(DISPID_IHTMLELEMENT2_ADDFILTER)] void addFilter([in] IUnknown* pUnk);
    [id(DISPID_IHTMLELEMENT2_REMOVEFILTER)] void removeFilter([in] IUnknown* pUnk);
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTHEIGHT), displaybind, bindable] long clientHeight();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTWIDTH), displaybind, bindable] long clientWidth();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTTOP), displaybind, bindable] long clientTop();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTLEFT), displaybind, bindable] long clientLeft();
    [id(DISPID_IHTMLELEMENT2_ATTACHEVENT)] VARIANT_BOOL attachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [id(DISPID_IHTMLELEMENT2_DETACHEVENT)] void detachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATE)] VARIANT readyState();
    [propput, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] void onreadystatechange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] VARIANT onreadystatechange();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] void onrowsdelete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] VARIANT onrowsdelete();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] void onrowsinserted(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] VARIANT onrowsinserted();
    [propput, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] void oncellchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] VARIANT oncellchange();
    [propput, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] void dir(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] BSTR dir();
    [id(DISPID_IHTMLELEMENT2_CREATECONTROLRANGE)] IDispatch* createControlRange();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLHEIGHT), displaybind, bindable] long scrollHeight();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLWIDTH), displaybind, bindable] long scrollWidth();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] void scrollTop(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] long scrollTop();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] void scrollLeft(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] long scrollLeft();
    [id(DISPID_IHTMLELEMENT2_CLEARATTRIBUTES)] void clearAttributes();
    [id(DISPID_IHTMLELEMENT2_MERGEATTRIBUTES)] void mergeAttributes([in] IHTMLElement* mergeThis);
    [propput, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] void oncontextmenu(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] VARIANT oncontextmenu();
    [id(DISPID_IHTMLELEMENT2_INSERTADJACENTELEMENT)] IHTMLElement* insertAdjacentElement([in] BSTR where,[in] IHTMLElement* insertedElement);
    [id(DISPID_IHTMLELEMENT2_APPLYELEMENT)] IHTMLElement* applyElement([in] IHTMLElement* apply,[in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_GETADJACENTTEXT)] BSTR getAdjacentText([in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_REPLACEADJACENTTEXT)] BSTR replaceAdjacentText([in] BSTR where,[in] BSTR newText);
    [propget, id(DISPID_IHTMLELEMENT2_CANHAVECHILDREN)] VARIANT_BOOL canHaveChildren();
    [id(DISPID_IHTMLELEMENT2_ADDBEHAVIOR)] long addBehavior([in] BSTR bstrUrl,[optional, in] VARIANT* pvarFactory);
    [id(DISPID_IHTMLELEMENT2_REMOVEBEHAVIOR)] VARIANT_BOOL removeBehavior([in] long cookie);
    [propget, id(DISPID_IHTMLELEMENT2_RUNTIMESTYLE), nonbrowsable] IHTMLStyle* runtimeStyle();
    [propget, id(DISPID_IHTMLELEMENT2_BEHAVIORURNS)] IDispatch* behaviorUrns();
    [propput, id(DISPID_IHTMLELEMENT2_TAGURN)] void tagUrn(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_TAGURN)] BSTR tagUrn();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] void onbeforeeditfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] VARIANT onbeforeeditfocus();
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATEVALUE), hidden, restricted] long readyStateValue();
    [id(DISPID_IHTMLELEMENT2_GETELEMENTSBYTAGNAME)] IHTMLElementCollection* getElementsByTagName([in] BSTR v);
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUENUMBER), hidden] long uniqueNumber();
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUEID), hidden] BSTR uniqueID();
    [propget, id(DISPID_IHTMLDOMNODE_NODETYPE)] long nodeType();
    [propget, id(DISPID_IHTMLDOMNODE_PARENTNODE)] IHTMLDOMNode* parentNode();
    [id(DISPID_IHTMLDOMNODE_HASCHILDNODES)] VARIANT_BOOL hasChildNodes();
    [propget, id(DISPID_IHTMLDOMNODE_CHILDNODES)] IDispatch* childNodes();
    [propget, id(DISPID_IHTMLDOMNODE_ATTRIBUTES)] IDispatch* attributes();
    [id(DISPID_IHTMLDOMNODE_INSERTBEFORE)] IHTMLDOMNode* insertBefore([in] IHTMLDOMNode* newChild,[optional, in] VARIANT refChild);
    [id(DISPID_IHTMLDOMNODE_REMOVECHILD)] IHTMLDOMNode* removeChild([in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_REPLACECHILD)] IHTMLDOMNode* replaceChild([in] IHTMLDOMNode* newChild,[in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_CLONENODE)] IHTMLDOMNode* cloneNode([in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_REMOVENODE)] IHTMLDOMNode* removeNode([defaultvalue(0), in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_SWAPNODE)] IHTMLDOMNode* swapNode([in] IHTMLDOMNode* otherNode);
    [id(DISPID_IHTMLDOMNODE_REPLACENODE)] IHTMLDOMNode* replaceNode([in] IHTMLDOMNode* replacement);
    [id(DISPID_IHTMLDOMNODE_APPENDCHILD)] IHTMLDOMNode* appendChild([in] IHTMLDOMNode* newChild);
    [propget, id(DISPID_IHTMLDOMNODE_NODENAME)] BSTR nodeName();
    [propput, id(DISPID_IHTMLDOMNODE_NODEVALUE)] void nodeValue(VARIANT v);
    [propget, id(DISPID_IHTMLDOMNODE_NODEVALUE)] VARIANT nodeValue();
    [propget, id(DISPID_IHTMLDOMNODE_FIRSTCHILD)] IHTMLDOMNode* firstChild();
    [propget, id(DISPID_IHTMLDOMNODE_LASTCHILD)] IHTMLDOMNode* lastChild();
    [propget, id(DISPID_IHTMLDOMNODE_PREVIOUSSIBLING)] IHTMLDOMNode* previousSibling();
    [propget, id(DISPID_IHTMLDOMNODE_NEXTSIBLING)] IHTMLDOMNode* nextSibling();
    [propput, id(DISPID_IHTMLTABLECOL_SPAN)] void span(long v);
    [propget, id(DISPID_IHTMLTABLECOL_SPAN)] long span();
    [propput, id(DISPID_IHTMLTABLECOL_WIDTH)] void width(VARIANT v);
    [propget, id(DISPID_IHTMLTABLECOL_WIDTH)] VARIANT width();
    [propput, id(DISPID_IHTMLTABLECOL_ALIGN)] void align(BSTR v);
    [propget, id(DISPID_IHTMLTABLECOL_ALIGN)] BSTR align();
    [propput, id(DISPID_IHTMLTABLECOL_VALIGN)] void vAlign(BSTR v);
    [propget, id(DISPID_IHTMLTABLECOL_VALIGN)] BSTR vAlign();
};
[
    uuid(3050f26c-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLTableCol
{
    [default]           dispinterface DispHTMLTableCol;
    [source, default]   dispinterface HTMLElementEvents;
    [source]            dispinterface HTMLElementEvents2;
                        interface IHTMLElement;
                        interface IHTMLElement2;
                        interface IHTMLUniqueName;
                        interface IHTMLDOMNode;
                        interface IHTMLTableCol;
};
cpp_quote("EXTERN_C const GUID CLSID_CTableCol;")
[
    hidden,
    uuid(3050f534-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTMLTableSection
{
properties:
methods:
    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)] void setAttribute([in] BSTR strAttributeName,[in] VARIANT AttributeValue,[defaultvalue(1), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)] VARIANT getAttribute([in] BSTR strAttributeName,[defaultvalue(0), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)] VARIANT_BOOL removeAttribute([in] BSTR strAttributeName,[defaultvalue(1), in] LONG lFlags);
    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] void className(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] BSTR className();
    [propput, id(DISPID_IHTMLELEMENT_ID), bindable] void id(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_ID), bindable] BSTR id();
    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)] BSTR tagName();
    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)] IHTMLElement* parentElement();
    [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable] IHTMLStyle* style();
    [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] void onhelp(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] VARIANT onhelp();
    [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] void onclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] VARIANT onclick();
    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] void ondblclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] VARIANT ondblclick();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] void onkeydown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] VARIANT onkeydown();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] void onkeyup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] VARIANT onkeyup();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] void onkeypress(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] VARIANT onkeypress();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] void onmouseout(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] VARIANT onmouseout();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] void onmouseover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] VARIANT onmouseover();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] void onmousemove(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] VARIANT onmousemove();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] void onmousedown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] VARIANT onmousedown();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] void onmouseup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] VARIANT onmouseup();
    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)] IDispatch* document();
    [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] void title(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] BSTR title();
    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] void language(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] BSTR language();
    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] void onselectstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] VARIANT onselectstart();
    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)] void scrollIntoView([optional, in] VARIANT varargStart);
    [id(DISPID_IHTMLELEMENT_CONTAINS)] VARIANT_BOOL contains([in] IHTMLElement* pChild);
    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable] long sourceIndex();
    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)] VARIANT recordNumber();
    [propput, id(DISPID_IHTMLELEMENT_LANG)] void lang(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANG)] BSTR lang();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)] long offsetLeft();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)] long offsetTop();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)] long offsetWidth();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)] long offsetHeight();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)] IHTMLElement* offsetParent();
    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)] void innerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)] BSTR innerHTML();
    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)] void innerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)] BSTR innerText();
    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)] void outerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)] BSTR outerHTML();
    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)] void outerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)] BSTR outerText();
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)] void insertAdjacentHTML([in] BSTR where,[in] BSTR html);
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)] void insertAdjacentText([in] BSTR where,[in] BSTR text);
    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)] IHTMLElement* parentTextEdit();
    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)] VARIANT_BOOL isTextEdit();
    [id(DISPID_IHTMLELEMENT_CLICK)] void click();
    [propget, id(DISPID_IHTMLELEMENT_FILTERS)] IHTMLFiltersCollection* filters();
    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] void ondragstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] VARIANT ondragstart();
    [id(DISPID_IHTMLELEMENT_TOSTRING)] BSTR toString();
    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] void onbeforeupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] VARIANT onbeforeupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] void onafterupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] VARIANT onafterupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] void onerrorupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] VARIANT onerrorupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] void onrowexit(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] VARIANT onrowexit();
    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] void onrowenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] VARIANT onrowenter();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] void ondatasetchanged(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] VARIANT ondatasetchanged();
    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] void ondataavailable(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] VARIANT ondataavailable();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] void ondatasetcomplete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] VARIANT ondatasetcomplete();
    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] void onfilterchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] VARIANT onfilterchange();
    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)] IDispatch* children();
    [propget, id(DISPID_IHTMLELEMENT_ALL)] IDispatch* all();
    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)] BSTR scopeName();
    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)] void setCapture([defaultvalue(-1), in] VARIANT_BOOL containerCapture);
    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)] void releaseCapture();
    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] void onlosecapture(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] VARIANT onlosecapture();
    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)] BSTR componentFromPoint([in] long x,[in] long y);
    [id(DISPID_IHTMLELEMENT2_DOSCROLL)] void doScroll([optional, in] VARIANT component);
    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] void onscroll(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] VARIANT onscroll();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] void ondrag(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] VARIANT ondrag();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] void ondragend(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] VARIANT ondragend();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] void ondragenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] VARIANT ondragenter();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] void ondragover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] VARIANT ondragover();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] void ondragleave(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] VARIANT ondragleave();
    [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] void ondrop(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] VARIANT ondrop();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] void onbeforecut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] VARIANT onbeforecut();
    [propput, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] void oncut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] VARIANT oncut();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] void onbeforecopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] VARIANT onbeforecopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] void oncopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] VARIANT oncopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] void onbeforepaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] VARIANT onbeforepaste();
    [propput, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] void onpaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] VARIANT onpaste();
    [propget, id(DISPID_IHTMLELEMENT2_CURRENTSTYLE), nonbrowsable] IHTMLCurrentStyle* currentStyle();
    [propput, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] void onpropertychange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] VARIANT onpropertychange();
    [id(DISPID_IHTMLELEMENT2_GETCLIENTRECTS)] IHTMLRectCollection* getClientRects();
    [id(DISPID_IHTMLELEMENT2_GETBOUNDINGCLIENTRECT)] IHTMLRect* getBoundingClientRect();
    [id(DISPID_IHTMLELEMENT2_SETEXPRESSION)] void setExpression([in] BSTR propname,[in] BSTR expression,[defaultvalue(""), in] BSTR language);
    [id(DISPID_IHTMLELEMENT2_GETEXPRESSION)] VARIANT getExpression([in] BSTR propname);
    [id(DISPID_IHTMLELEMENT2_REMOVEEXPRESSION)] VARIANT_BOOL removeExpression([in] BSTR propname);
    [propput, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] void tabIndex(short v);
    [propget, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] short tabIndex();
    [id(DISPID_IHTMLELEMENT2_FOCUS)] void focus();
    [propput, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] void accessKey(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] BSTR accessKey();
    [propput, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] void onblur(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] VARIANT onblur();
    [propput, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] void onfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] VARIANT onfocus();
    [propput, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] void onresize(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] VARIANT onresize();
    [id(DISPID_IHTMLELEMENT2_BLUR)] void blur();
    [id(DISPID_IHTMLELEMENT2_ADDFILTER)] void addFilter([in] IUnknown* pUnk);
    [id(DISPID_IHTMLELEMENT2_REMOVEFILTER)] void removeFilter([in] IUnknown* pUnk);
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTHEIGHT), displaybind, bindable] long clientHeight();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTWIDTH), displaybind, bindable] long clientWidth();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTTOP), displaybind, bindable] long clientTop();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTLEFT), displaybind, bindable] long clientLeft();
    [id(DISPID_IHTMLELEMENT2_ATTACHEVENT)] VARIANT_BOOL attachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [id(DISPID_IHTMLELEMENT2_DETACHEVENT)] void detachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATE)] VARIANT readyState();
    [propput, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] void onreadystatechange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] VARIANT onreadystatechange();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] void onrowsdelete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] VARIANT onrowsdelete();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] void onrowsinserted(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] VARIANT onrowsinserted();
    [propput, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] void oncellchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] VARIANT oncellchange();
    [propput, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] void dir(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] BSTR dir();
    [id(DISPID_IHTMLELEMENT2_CREATECONTROLRANGE)] IDispatch* createControlRange();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLHEIGHT), displaybind, bindable] long scrollHeight();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLWIDTH), displaybind, bindable] long scrollWidth();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] void scrollTop(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] long scrollTop();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] void scrollLeft(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] long scrollLeft();
    [id(DISPID_IHTMLELEMENT2_CLEARATTRIBUTES)] void clearAttributes();
    [id(DISPID_IHTMLELEMENT2_MERGEATTRIBUTES)] void mergeAttributes([in] IHTMLElement* mergeThis);
    [propput, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] void oncontextmenu(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] VARIANT oncontextmenu();
    [id(DISPID_IHTMLELEMENT2_INSERTADJACENTELEMENT)] IHTMLElement* insertAdjacentElement([in] BSTR where,[in] IHTMLElement* insertedElement);
    [id(DISPID_IHTMLELEMENT2_APPLYELEMENT)] IHTMLElement* applyElement([in] IHTMLElement* apply,[in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_GETADJACENTTEXT)] BSTR getAdjacentText([in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_REPLACEADJACENTTEXT)] BSTR replaceAdjacentText([in] BSTR where,[in] BSTR newText);
    [propget, id(DISPID_IHTMLELEMENT2_CANHAVECHILDREN)] VARIANT_BOOL canHaveChildren();
    [id(DISPID_IHTMLELEMENT2_ADDBEHAVIOR)] long addBehavior([in] BSTR bstrUrl,[optional, in] VARIANT* pvarFactory);
    [id(DISPID_IHTMLELEMENT2_REMOVEBEHAVIOR)] VARIANT_BOOL removeBehavior([in] long cookie);
    [propget, id(DISPID_IHTMLELEMENT2_RUNTIMESTYLE), nonbrowsable] IHTMLStyle* runtimeStyle();
    [propget, id(DISPID_IHTMLELEMENT2_BEHAVIORURNS)] IDispatch* behaviorUrns();
    [propput, id(DISPID_IHTMLELEMENT2_TAGURN)] void tagUrn(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_TAGURN)] BSTR tagUrn();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] void onbeforeeditfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] VARIANT onbeforeeditfocus();
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATEVALUE), hidden, restricted] long readyStateValue();
    [id(DISPID_IHTMLELEMENT2_GETELEMENTSBYTAGNAME)] IHTMLElementCollection* getElementsByTagName([in] BSTR v);
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUENUMBER), hidden] long uniqueNumber();
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUEID), hidden] BSTR uniqueID();
    [propget, id(DISPID_IHTMLDOMNODE_NODETYPE)] long nodeType();
    [propget, id(DISPID_IHTMLDOMNODE_PARENTNODE)] IHTMLDOMNode* parentNode();
    [id(DISPID_IHTMLDOMNODE_HASCHILDNODES)] VARIANT_BOOL hasChildNodes();
    [propget, id(DISPID_IHTMLDOMNODE_CHILDNODES)] IDispatch* childNodes();
    [propget, id(DISPID_IHTMLDOMNODE_ATTRIBUTES)] IDispatch* attributes();
    [id(DISPID_IHTMLDOMNODE_INSERTBEFORE)] IHTMLDOMNode* insertBefore([in] IHTMLDOMNode* newChild,[optional, in] VARIANT refChild);
    [id(DISPID_IHTMLDOMNODE_REMOVECHILD)] IHTMLDOMNode* removeChild([in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_REPLACECHILD)] IHTMLDOMNode* replaceChild([in] IHTMLDOMNode* newChild,[in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_CLONENODE)] IHTMLDOMNode* cloneNode([in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_REMOVENODE)] IHTMLDOMNode* removeNode([defaultvalue(0), in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_SWAPNODE)] IHTMLDOMNode* swapNode([in] IHTMLDOMNode* otherNode);
    [id(DISPID_IHTMLDOMNODE_REPLACENODE)] IHTMLDOMNode* replaceNode([in] IHTMLDOMNode* replacement);
    [id(DISPID_IHTMLDOMNODE_APPENDCHILD)] IHTMLDOMNode* appendChild([in] IHTMLDOMNode* newChild);
    [propget, id(DISPID_IHTMLDOMNODE_NODENAME)] BSTR nodeName();
    [propput, id(DISPID_IHTMLDOMNODE_NODEVALUE)] void nodeValue(VARIANT v);
    [propget, id(DISPID_IHTMLDOMNODE_NODEVALUE)] VARIANT nodeValue();
    [propget, id(DISPID_IHTMLDOMNODE_FIRSTCHILD)] IHTMLDOMNode* firstChild();
    [propget, id(DISPID_IHTMLDOMNODE_LASTCHILD)] IHTMLDOMNode* lastChild();
    [propget, id(DISPID_IHTMLDOMNODE_PREVIOUSSIBLING)] IHTMLDOMNode* previousSibling();
    [propget, id(DISPID_IHTMLDOMNODE_NEXTSIBLING)] IHTMLDOMNode* nextSibling();
    [propput, id(DISPID_IHTMLTABLESECTION_ALIGN)] void align(BSTR v);
    [propget, id(DISPID_IHTMLTABLESECTION_ALIGN)] BSTR align();
    [propput, id(DISPID_IHTMLTABLESECTION_VALIGN)] void vAlign(BSTR v);
    [propget, id(DISPID_IHTMLTABLESECTION_VALIGN)] BSTR vAlign();
    [propput, id(DISPID_IHTMLTABLESECTION_BGCOLOR)] void bgColor(VARIANT v);
    [propget, id(DISPID_IHTMLTABLESECTION_BGCOLOR)] VARIANT bgColor();
    [propget, id(DISPID_IHTMLTABLESECTION_ROWS)] IHTMLElementCollection* rows();
    [id(DISPID_IHTMLTABLESECTION_INSERTROW)] IDispatch* insertRow([defaultvalue(-1), in] long index);
    [id(DISPID_IHTMLTABLESECTION_DELETEROW)] void deleteRow([defaultvalue(-1), in] long index);
    [id(DISPID_IHTMLTABLESECTION2_MOVEROW)] IDispatch* moveRow([defaultvalue(-1), in] long indexFrom,[defaultvalue(-1), in] long indexTo);
};
[
    uuid(3050f2e9-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLTableSection
{
    [default]           dispinterface DispHTMLTableSection;
    [source, default]   dispinterface HTMLElementEvents;
    [source]            dispinterface HTMLElementEvents2;
                        interface IHTMLElement;
                        interface IHTMLElement2;
                        interface IHTMLUniqueName;
                        interface IHTMLDOMNode;
                        interface IHTMLTableSection;
                        interface IHTMLTableSection2;
};
cpp_quote("EXTERN_C const GUID CLSID_CTableSection;")
[
    hidden,
    uuid(3050f535-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTMLTableRow
{
properties:
methods:
    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)] void setAttribute([in] BSTR strAttributeName,[in] VARIANT AttributeValue,[defaultvalue(1), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)] VARIANT getAttribute([in] BSTR strAttributeName,[defaultvalue(0), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)] VARIANT_BOOL removeAttribute([in] BSTR strAttributeName,[defaultvalue(1), in] LONG lFlags);
    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] void className(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] BSTR className();
    [propput, id(DISPID_IHTMLELEMENT_ID), bindable] void id(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_ID), bindable] BSTR id();
    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)] BSTR tagName();
    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)] IHTMLElement* parentElement();
    [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable] IHTMLStyle* style();
    [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] void onhelp(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] VARIANT onhelp();
    [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] void onclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] VARIANT onclick();
    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] void ondblclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] VARIANT ondblclick();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] void onkeydown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] VARIANT onkeydown();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] void onkeyup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] VARIANT onkeyup();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] void onkeypress(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] VARIANT onkeypress();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] void onmouseout(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] VARIANT onmouseout();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] void onmouseover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] VARIANT onmouseover();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] void onmousemove(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] VARIANT onmousemove();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] void onmousedown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] VARIANT onmousedown();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] void onmouseup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] VARIANT onmouseup();
    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)] IDispatch* document();
    [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] void title(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] BSTR title();
    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] void language(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] BSTR language();
    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] void onselectstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] VARIANT onselectstart();
    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)] void scrollIntoView([optional, in] VARIANT varargStart);
    [id(DISPID_IHTMLELEMENT_CONTAINS)] VARIANT_BOOL contains([in] IHTMLElement* pChild);
    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable] long sourceIndex();
    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)] VARIANT recordNumber();
    [propput, id(DISPID_IHTMLELEMENT_LANG)] void lang(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANG)] BSTR lang();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)] long offsetLeft();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)] long offsetTop();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)] long offsetWidth();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)] long offsetHeight();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)] IHTMLElement* offsetParent();
    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)] void innerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)] BSTR innerHTML();
    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)] void innerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)] BSTR innerText();
    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)] void outerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)] BSTR outerHTML();
    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)] void outerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)] BSTR outerText();
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)] void insertAdjacentHTML([in] BSTR where,[in] BSTR html);
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)] void insertAdjacentText([in] BSTR where,[in] BSTR text);
    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)] IHTMLElement* parentTextEdit();
    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)] VARIANT_BOOL isTextEdit();
    [id(DISPID_IHTMLELEMENT_CLICK)] void click();
    [propget, id(DISPID_IHTMLELEMENT_FILTERS)] IHTMLFiltersCollection* filters();
    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] void ondragstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] VARIANT ondragstart();
    [id(DISPID_IHTMLELEMENT_TOSTRING)] BSTR toString();
    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] void onbeforeupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] VARIANT onbeforeupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] void onafterupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] VARIANT onafterupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] void onerrorupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] VARIANT onerrorupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] void onrowexit(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] VARIANT onrowexit();
    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] void onrowenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] VARIANT onrowenter();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] void ondatasetchanged(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] VARIANT ondatasetchanged();
    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] void ondataavailable(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] VARIANT ondataavailable();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] void ondatasetcomplete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] VARIANT ondatasetcomplete();
    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] void onfilterchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] VARIANT onfilterchange();
    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)] IDispatch* children();
    [propget, id(DISPID_IHTMLELEMENT_ALL)] IDispatch* all();
    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)] BSTR scopeName();
    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)] void setCapture([defaultvalue(-1), in] VARIANT_BOOL containerCapture);
    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)] void releaseCapture();
    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] void onlosecapture(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] VARIANT onlosecapture();
    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)] BSTR componentFromPoint([in] long x,[in] long y);
    [id(DISPID_IHTMLELEMENT2_DOSCROLL)] void doScroll([optional, in] VARIANT component);
    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] void onscroll(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] VARIANT onscroll();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] void ondrag(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] VARIANT ondrag();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] void ondragend(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] VARIANT ondragend();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] void ondragenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] VARIANT ondragenter();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] void ondragover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] VARIANT ondragover();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] void ondragleave(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] VARIANT ondragleave();
    [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] void ondrop(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] VARIANT ondrop();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] void onbeforecut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] VARIANT onbeforecut();
    [propput, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] void oncut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] VARIANT oncut();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] void onbeforecopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] VARIANT onbeforecopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] void oncopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] VARIANT oncopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] void onbeforepaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] VARIANT onbeforepaste();
    [propput, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] void onpaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] VARIANT onpaste();
    [propget, id(DISPID_IHTMLELEMENT2_CURRENTSTYLE), nonbrowsable] IHTMLCurrentStyle* currentStyle();
    [propput, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] void onpropertychange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] VARIANT onpropertychange();
    [id(DISPID_IHTMLELEMENT2_GETCLIENTRECTS)] IHTMLRectCollection* getClientRects();
    [id(DISPID_IHTMLELEMENT2_GETBOUNDINGCLIENTRECT)] IHTMLRect* getBoundingClientRect();
    [id(DISPID_IHTMLELEMENT2_SETEXPRESSION)] void setExpression([in] BSTR propname,[in] BSTR expression,[defaultvalue(""), in] BSTR language);
    [id(DISPID_IHTMLELEMENT2_GETEXPRESSION)] VARIANT getExpression([in] BSTR propname);
    [id(DISPID_IHTMLELEMENT2_REMOVEEXPRESSION)] VARIANT_BOOL removeExpression([in] BSTR propname);
    [propput, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] void tabIndex(short v);
    [propget, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] short tabIndex();
    [id(DISPID_IHTMLELEMENT2_FOCUS)] void focus();
    [propput, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] void accessKey(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] BSTR accessKey();
    [propput, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] void onblur(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] VARIANT onblur();
    [propput, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] void onfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] VARIANT onfocus();
    [propput, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] void onresize(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] VARIANT onresize();
    [id(DISPID_IHTMLELEMENT2_BLUR)] void blur();
    [id(DISPID_IHTMLELEMENT2_ADDFILTER)] void addFilter([in] IUnknown* pUnk);
    [id(DISPID_IHTMLELEMENT2_REMOVEFILTER)] void removeFilter([in] IUnknown* pUnk);
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTHEIGHT), displaybind, bindable] long clientHeight();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTWIDTH), displaybind, bindable] long clientWidth();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTTOP), displaybind, bindable] long clientTop();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTLEFT), displaybind, bindable] long clientLeft();
    [id(DISPID_IHTMLELEMENT2_ATTACHEVENT)] VARIANT_BOOL attachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [id(DISPID_IHTMLELEMENT2_DETACHEVENT)] void detachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATE)] VARIANT readyState();
    [propput, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] void onreadystatechange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] VARIANT onreadystatechange();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] void onrowsdelete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] VARIANT onrowsdelete();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] void onrowsinserted(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] VARIANT onrowsinserted();
    [propput, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] void oncellchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] VARIANT oncellchange();
    [propput, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] void dir(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] BSTR dir();
    [id(DISPID_IHTMLELEMENT2_CREATECONTROLRANGE)] IDispatch* createControlRange();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLHEIGHT), displaybind, bindable] long scrollHeight();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLWIDTH), displaybind, bindable] long scrollWidth();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] void scrollTop(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] long scrollTop();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] void scrollLeft(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] long scrollLeft();
    [id(DISPID_IHTMLELEMENT2_CLEARATTRIBUTES)] void clearAttributes();
    [id(DISPID_IHTMLELEMENT2_MERGEATTRIBUTES)] void mergeAttributes([in] IHTMLElement* mergeThis);
    [propput, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] void oncontextmenu(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] VARIANT oncontextmenu();
    [id(DISPID_IHTMLELEMENT2_INSERTADJACENTELEMENT)] IHTMLElement* insertAdjacentElement([in] BSTR where,[in] IHTMLElement* insertedElement);
    [id(DISPID_IHTMLELEMENT2_APPLYELEMENT)] IHTMLElement* applyElement([in] IHTMLElement* apply,[in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_GETADJACENTTEXT)] BSTR getAdjacentText([in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_REPLACEADJACENTTEXT)] BSTR replaceAdjacentText([in] BSTR where,[in] BSTR newText);
    [propget, id(DISPID_IHTMLELEMENT2_CANHAVECHILDREN)] VARIANT_BOOL canHaveChildren();
    [id(DISPID_IHTMLELEMENT2_ADDBEHAVIOR)] long addBehavior([in] BSTR bstrUrl,[optional, in] VARIANT* pvarFactory);
    [id(DISPID_IHTMLELEMENT2_REMOVEBEHAVIOR)] VARIANT_BOOL removeBehavior([in] long cookie);
    [propget, id(DISPID_IHTMLELEMENT2_RUNTIMESTYLE), nonbrowsable] IHTMLStyle* runtimeStyle();
    [propget, id(DISPID_IHTMLELEMENT2_BEHAVIORURNS)] IDispatch* behaviorUrns();
    [propput, id(DISPID_IHTMLELEMENT2_TAGURN)] void tagUrn(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_TAGURN)] BSTR tagUrn();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] void onbeforeeditfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] VARIANT onbeforeeditfocus();
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATEVALUE), hidden, restricted] long readyStateValue();
    [id(DISPID_IHTMLELEMENT2_GETELEMENTSBYTAGNAME)] IHTMLElementCollection* getElementsByTagName([in] BSTR v);
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUENUMBER), hidden] long uniqueNumber();
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUEID), hidden] BSTR uniqueID();
    [propget, id(DISPID_IHTMLDOMNODE_NODETYPE)] long nodeType();
    [propget, id(DISPID_IHTMLDOMNODE_PARENTNODE)] IHTMLDOMNode* parentNode();
    [id(DISPID_IHTMLDOMNODE_HASCHILDNODES)] VARIANT_BOOL hasChildNodes();
    [propget, id(DISPID_IHTMLDOMNODE_CHILDNODES)] IDispatch* childNodes();
    [propget, id(DISPID_IHTMLDOMNODE_ATTRIBUTES)] IDispatch* attributes();
    [id(DISPID_IHTMLDOMNODE_INSERTBEFORE)] IHTMLDOMNode* insertBefore([in] IHTMLDOMNode* newChild,[optional, in] VARIANT refChild);
    [id(DISPID_IHTMLDOMNODE_REMOVECHILD)] IHTMLDOMNode* removeChild([in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_REPLACECHILD)] IHTMLDOMNode* replaceChild([in] IHTMLDOMNode* newChild,[in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_CLONENODE)] IHTMLDOMNode* cloneNode([in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_REMOVENODE)] IHTMLDOMNode* removeNode([defaultvalue(0), in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_SWAPNODE)] IHTMLDOMNode* swapNode([in] IHTMLDOMNode* otherNode);
    [id(DISPID_IHTMLDOMNODE_REPLACENODE)] IHTMLDOMNode* replaceNode([in] IHTMLDOMNode* replacement);
    [id(DISPID_IHTMLDOMNODE_APPENDCHILD)] IHTMLDOMNode* appendChild([in] IHTMLDOMNode* newChild);
    [propget, id(DISPID_IHTMLDOMNODE_NODENAME)] BSTR nodeName();
    [propput, id(DISPID_IHTMLDOMNODE_NODEVALUE)] void nodeValue(VARIANT v);
    [propget, id(DISPID_IHTMLDOMNODE_NODEVALUE)] VARIANT nodeValue();
    [propget, id(DISPID_IHTMLDOMNODE_FIRSTCHILD)] IHTMLDOMNode* firstChild();
    [propget, id(DISPID_IHTMLDOMNODE_LASTCHILD)] IHTMLDOMNode* lastChild();
    [propget, id(DISPID_IHTMLDOMNODE_PREVIOUSSIBLING)] IHTMLDOMNode* previousSibling();
    [propget, id(DISPID_IHTMLDOMNODE_NEXTSIBLING)] IHTMLDOMNode* nextSibling();
    [propput, id(DISPID_IHTMLTABLEROW_ALIGN)] void align(BSTR v);
    [propget, id(DISPID_IHTMLTABLEROW_ALIGN)] BSTR align();
    [propput, id(DISPID_IHTMLTABLEROW_VALIGN)] void vAlign(BSTR v);
    [propget, id(DISPID_IHTMLTABLEROW_VALIGN)] BSTR vAlign();
    [propput, id(DISPID_IHTMLTABLEROW_BGCOLOR)] void bgColor(VARIANT v);
    [propget, id(DISPID_IHTMLTABLEROW_BGCOLOR)] VARIANT bgColor();
    [propput, id(DISPID_IHTMLTABLEROW_BORDERCOLOR)] void borderColor(VARIANT v);
    [propget, id(DISPID_IHTMLTABLEROW_BORDERCOLOR)] VARIANT borderColor();
    [propput, id(DISPID_IHTMLTABLEROW_BORDERCOLORLIGHT)] void borderColorLight(VARIANT v);
    [propget, id(DISPID_IHTMLTABLEROW_BORDERCOLORLIGHT)] VARIANT borderColorLight();
    [propput, id(DISPID_IHTMLTABLEROW_BORDERCOLORDARK)] void borderColorDark(VARIANT v);
    [propget, id(DISPID_IHTMLTABLEROW_BORDERCOLORDARK)] VARIANT borderColorDark();
    [propget, id(DISPID_IHTMLTABLEROW_ROWINDEX)] long rowIndex();
    [propget, id(DISPID_IHTMLTABLEROW_SECTIONROWINDEX)] long sectionRowIndex();
    [propget, id(DISPID_IHTMLTABLEROW_CELLS)] IHTMLElementCollection* cells();
    [id(DISPID_IHTMLTABLEROW_INSERTCELL)] IDispatch* insertCell([defaultvalue(-1), in] long index);
    [id(DISPID_IHTMLTABLEROW_DELETECELL)] void deleteCell([defaultvalue(-1), in] long index);
    [propput, id(DISPID_IHTMLTABLEROW2_HEIGHT)] void height(VARIANT v);
    [propget, id(DISPID_IHTMLTABLEROW2_HEIGHT)] VARIANT height();
};
[
    uuid(3050f26d-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLTableRow
{
    [default]           dispinterface DispHTMLTableRow;
    [source, default]   dispinterface HTMLControlElementEvents;
    [source]            dispinterface HTMLControlElementEvents2;
                        interface IHTMLElement;
                        interface IHTMLElement2;
                        interface IHTMLUniqueName;
                        interface IHTMLDOMNode;
                        interface IHTMLTableRow;
                        interface IHTMLTableRowMetrics;
                        interface IHTMLTableRow2;
};
cpp_quote("EXTERN_C const GUID CLSID_CTableRow;")
[
    hidden,
    uuid(3050f536-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTMLTableCell
{
properties:
methods:
    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)] void setAttribute([in] BSTR strAttributeName,[in] VARIANT AttributeValue,[defaultvalue(1), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)] VARIANT getAttribute([in] BSTR strAttributeName,[defaultvalue(0), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)] VARIANT_BOOL removeAttribute([in] BSTR strAttributeName,[defaultvalue(1), in] LONG lFlags);
    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] void className(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] BSTR className();
    [propput, id(DISPID_IHTMLELEMENT_ID), bindable] void id(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_ID), bindable] BSTR id();
    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)] BSTR tagName();
    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)] IHTMLElement* parentElement();
    [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable] IHTMLStyle* style();
    [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] void onhelp(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] VARIANT onhelp();
    [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] void onclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] VARIANT onclick();
    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] void ondblclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] VARIANT ondblclick();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] void onkeydown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] VARIANT onkeydown();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] void onkeyup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] VARIANT onkeyup();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] void onkeypress(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] VARIANT onkeypress();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] void onmouseout(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] VARIANT onmouseout();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] void onmouseover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] VARIANT onmouseover();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] void onmousemove(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] VARIANT onmousemove();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] void onmousedown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] VARIANT onmousedown();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] void onmouseup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] VARIANT onmouseup();
    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)] IDispatch* document();
    [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] void title(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] BSTR title();
    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] void language(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] BSTR language();
    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] void onselectstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] VARIANT onselectstart();
    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)] void scrollIntoView([optional, in] VARIANT varargStart);
    [id(DISPID_IHTMLELEMENT_CONTAINS)] VARIANT_BOOL contains([in] IHTMLElement* pChild);
    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable] long sourceIndex();
    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)] VARIANT recordNumber();
    [propput, id(DISPID_IHTMLELEMENT_LANG)] void lang(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANG)] BSTR lang();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)] long offsetLeft();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)] long offsetTop();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)] long offsetWidth();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)] long offsetHeight();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)] IHTMLElement* offsetParent();
    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)] void innerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)] BSTR innerHTML();
    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)] void innerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)] BSTR innerText();
    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)] void outerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)] BSTR outerHTML();
    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)] void outerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)] BSTR outerText();
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)] void insertAdjacentHTML([in] BSTR where,[in] BSTR html);
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)] void insertAdjacentText([in] BSTR where,[in] BSTR text);
    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)] IHTMLElement* parentTextEdit();
    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)] VARIANT_BOOL isTextEdit();
    [id(DISPID_IHTMLELEMENT_CLICK)] void click();
    [propget, id(DISPID_IHTMLELEMENT_FILTERS)] IHTMLFiltersCollection* filters();
    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] void ondragstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] VARIANT ondragstart();
    [id(DISPID_IHTMLELEMENT_TOSTRING)] BSTR toString();
    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] void onbeforeupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] VARIANT onbeforeupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] void onafterupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] VARIANT onafterupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] void onerrorupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] VARIANT onerrorupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] void onrowexit(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] VARIANT onrowexit();
    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] void onrowenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] VARIANT onrowenter();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] void ondatasetchanged(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] VARIANT ondatasetchanged();
    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] void ondataavailable(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] VARIANT ondataavailable();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] void ondatasetcomplete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] VARIANT ondatasetcomplete();
    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] void onfilterchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] VARIANT onfilterchange();
    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)] IDispatch* children();
    [propget, id(DISPID_IHTMLELEMENT_ALL)] IDispatch* all();
    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)] BSTR scopeName();
    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)] void setCapture([defaultvalue(-1), in] VARIANT_BOOL containerCapture);
    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)] void releaseCapture();
    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] void onlosecapture(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] VARIANT onlosecapture();
    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)] BSTR componentFromPoint([in] long x,[in] long y);
    [id(DISPID_IHTMLELEMENT2_DOSCROLL)] void doScroll([optional, in] VARIANT component);
    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] void onscroll(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] VARIANT onscroll();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] void ondrag(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] VARIANT ondrag();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] void ondragend(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] VARIANT ondragend();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] void ondragenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] VARIANT ondragenter();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] void ondragover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] VARIANT ondragover();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] void ondragleave(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] VARIANT ondragleave();
    [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] void ondrop(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] VARIANT ondrop();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] void onbeforecut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] VARIANT onbeforecut();
    [propput, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] void oncut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] VARIANT oncut();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] void onbeforecopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] VARIANT onbeforecopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] void oncopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] VARIANT oncopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] void onbeforepaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] VARIANT onbeforepaste();
    [propput, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] void onpaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] VARIANT onpaste();
    [propget, id(DISPID_IHTMLELEMENT2_CURRENTSTYLE), nonbrowsable] IHTMLCurrentStyle* currentStyle();
    [propput, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] void onpropertychange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] VARIANT onpropertychange();
    [id(DISPID_IHTMLELEMENT2_GETCLIENTRECTS)] IHTMLRectCollection* getClientRects();
    [id(DISPID_IHTMLELEMENT2_GETBOUNDINGCLIENTRECT)] IHTMLRect* getBoundingClientRect();
    [id(DISPID_IHTMLELEMENT2_SETEXPRESSION)] void setExpression([in] BSTR propname,[in] BSTR expression,[defaultvalue(""), in] BSTR language);
    [id(DISPID_IHTMLELEMENT2_GETEXPRESSION)] VARIANT getExpression([in] BSTR propname);
    [id(DISPID_IHTMLELEMENT2_REMOVEEXPRESSION)] VARIANT_BOOL removeExpression([in] BSTR propname);
    [propput, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] void tabIndex(short v);
    [propget, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] short tabIndex();
    [id(DISPID_IHTMLELEMENT2_FOCUS)] void focus();
    [propput, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] void accessKey(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] BSTR accessKey();
    [propput, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] void onblur(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] VARIANT onblur();
    [propput, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] void onfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] VARIANT onfocus();
    [propput, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] void onresize(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] VARIANT onresize();
    [id(DISPID_IHTMLELEMENT2_BLUR)] void blur();
    [id(DISPID_IHTMLELEMENT2_ADDFILTER)] void addFilter([in] IUnknown* pUnk);
    [id(DISPID_IHTMLELEMENT2_REMOVEFILTER)] void removeFilter([in] IUnknown* pUnk);
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTHEIGHT), displaybind, bindable] long clientHeight();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTWIDTH), displaybind, bindable] long clientWidth();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTTOP), displaybind, bindable] long clientTop();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTLEFT), displaybind, bindable] long clientLeft();
    [id(DISPID_IHTMLELEMENT2_ATTACHEVENT)] VARIANT_BOOL attachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [id(DISPID_IHTMLELEMENT2_DETACHEVENT)] void detachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATE)] VARIANT readyState();
    [propput, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] void onreadystatechange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] VARIANT onreadystatechange();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] void onrowsdelete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] VARIANT onrowsdelete();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] void onrowsinserted(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] VARIANT onrowsinserted();
    [propput, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] void oncellchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] VARIANT oncellchange();
    [propput, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] void dir(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] BSTR dir();
    [id(DISPID_IHTMLELEMENT2_CREATECONTROLRANGE)] IDispatch* createControlRange();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLHEIGHT), displaybind, bindable] long scrollHeight();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLWIDTH), displaybind, bindable] long scrollWidth();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] void scrollTop(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] long scrollTop();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] void scrollLeft(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] long scrollLeft();
    [id(DISPID_IHTMLELEMENT2_CLEARATTRIBUTES)] void clearAttributes();
    [id(DISPID_IHTMLELEMENT2_MERGEATTRIBUTES)] void mergeAttributes([in] IHTMLElement* mergeThis);
    [propput, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] void oncontextmenu(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] VARIANT oncontextmenu();
    [id(DISPID_IHTMLELEMENT2_INSERTADJACENTELEMENT)] IHTMLElement* insertAdjacentElement([in] BSTR where,[in] IHTMLElement* insertedElement);
    [id(DISPID_IHTMLELEMENT2_APPLYELEMENT)] IHTMLElement* applyElement([in] IHTMLElement* apply,[in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_GETADJACENTTEXT)] BSTR getAdjacentText([in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_REPLACEADJACENTTEXT)] BSTR replaceAdjacentText([in] BSTR where,[in] BSTR newText);
    [propget, id(DISPID_IHTMLELEMENT2_CANHAVECHILDREN)] VARIANT_BOOL canHaveChildren();
    [id(DISPID_IHTMLELEMENT2_ADDBEHAVIOR)] long addBehavior([in] BSTR bstrUrl,[optional, in] VARIANT* pvarFactory);
    [id(DISPID_IHTMLELEMENT2_REMOVEBEHAVIOR)] VARIANT_BOOL removeBehavior([in] long cookie);
    [propget, id(DISPID_IHTMLELEMENT2_RUNTIMESTYLE), nonbrowsable] IHTMLStyle* runtimeStyle();
    [propget, id(DISPID_IHTMLELEMENT2_BEHAVIORURNS)] IDispatch* behaviorUrns();
    [propput, id(DISPID_IHTMLELEMENT2_TAGURN)] void tagUrn(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_TAGURN)] BSTR tagUrn();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] void onbeforeeditfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] VARIANT onbeforeeditfocus();
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATEVALUE), hidden, restricted] long readyStateValue();
    [id(DISPID_IHTMLELEMENT2_GETELEMENTSBYTAGNAME)] IHTMLElementCollection* getElementsByTagName([in] BSTR v);
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUENUMBER), hidden] long uniqueNumber();
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUEID), hidden] BSTR uniqueID();
    [propget, id(DISPID_IHTMLDOMNODE_NODETYPE)] long nodeType();
    [propget, id(DISPID_IHTMLDOMNODE_PARENTNODE)] IHTMLDOMNode* parentNode();
    [id(DISPID_IHTMLDOMNODE_HASCHILDNODES)] VARIANT_BOOL hasChildNodes();
    [propget, id(DISPID_IHTMLDOMNODE_CHILDNODES)] IDispatch* childNodes();
    [propget, id(DISPID_IHTMLDOMNODE_ATTRIBUTES)] IDispatch* attributes();
    [id(DISPID_IHTMLDOMNODE_INSERTBEFORE)] IHTMLDOMNode* insertBefore([in] IHTMLDOMNode* newChild,[optional, in] VARIANT refChild);
    [id(DISPID_IHTMLDOMNODE_REMOVECHILD)] IHTMLDOMNode* removeChild([in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_REPLACECHILD)] IHTMLDOMNode* replaceChild([in] IHTMLDOMNode* newChild,[in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_CLONENODE)] IHTMLDOMNode* cloneNode([in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_REMOVENODE)] IHTMLDOMNode* removeNode([defaultvalue(0), in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_SWAPNODE)] IHTMLDOMNode* swapNode([in] IHTMLDOMNode* otherNode);
    [id(DISPID_IHTMLDOMNODE_REPLACENODE)] IHTMLDOMNode* replaceNode([in] IHTMLDOMNode* replacement);
    [id(DISPID_IHTMLDOMNODE_APPENDCHILD)] IHTMLDOMNode* appendChild([in] IHTMLDOMNode* newChild);
    [propget, id(DISPID_IHTMLDOMNODE_NODENAME)] BSTR nodeName();
    [propput, id(DISPID_IHTMLDOMNODE_NODEVALUE)] void nodeValue(VARIANT v);
    [propget, id(DISPID_IHTMLDOMNODE_NODEVALUE)] VARIANT nodeValue();
    [propget, id(DISPID_IHTMLDOMNODE_FIRSTCHILD)] IHTMLDOMNode* firstChild();
    [propget, id(DISPID_IHTMLDOMNODE_LASTCHILD)] IHTMLDOMNode* lastChild();
    [propget, id(DISPID_IHTMLDOMNODE_PREVIOUSSIBLING)] IHTMLDOMNode* previousSibling();
    [propget, id(DISPID_IHTMLDOMNODE_NEXTSIBLING)] IHTMLDOMNode* nextSibling();
    [propput, id(DISPID_IHTMLTABLECELL_ROWSPAN)] void rowSpan(long v);
    [propget, id(DISPID_IHTMLTABLECELL_ROWSPAN)] long rowSpan();
    [propput, id(DISPID_IHTMLTABLECELL_COLSPAN)] void colSpan(long v);
    [propget, id(DISPID_IHTMLTABLECELL_COLSPAN)] long colSpan();
    [propput, id(DISPID_IHTMLTABLECELL_ALIGN)] void align(BSTR v);
    [propget, id(DISPID_IHTMLTABLECELL_ALIGN)] BSTR align();
    [propput, id(DISPID_IHTMLTABLECELL_VALIGN)] void vAlign(BSTR v);
    [propget, id(DISPID_IHTMLTABLECELL_VALIGN)] BSTR vAlign();
    [propput, id(DISPID_IHTMLTABLECELL_BGCOLOR)] void bgColor(VARIANT v);
    [propget, id(DISPID_IHTMLTABLECELL_BGCOLOR)] VARIANT bgColor();
    [propput, id(DISPID_IHTMLTABLECELL_NOWRAP)] void noWrap(VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLTABLECELL_NOWRAP)] VARIANT_BOOL noWrap();
    [propput, id(DISPID_IHTMLTABLECELL_BACKGROUND)] void background(BSTR v);
    [propget, id(DISPID_IHTMLTABLECELL_BACKGROUND)] BSTR background();
    [propput, id(DISPID_IHTMLTABLECELL_BORDERCOLOR)] void borderColor(VARIANT v);
    [propget, id(DISPID_IHTMLTABLECELL_BORDERCOLOR)] VARIANT borderColor();
    [propput, id(DISPID_IHTMLTABLECELL_BORDERCOLORLIGHT)] void borderColorLight(VARIANT v);
    [propget, id(DISPID_IHTMLTABLECELL_BORDERCOLORLIGHT)] VARIANT borderColorLight();
    [propput, id(DISPID_IHTMLTABLECELL_BORDERCOLORDARK)] void borderColorDark(VARIANT v);
    [propget, id(DISPID_IHTMLTABLECELL_BORDERCOLORDARK)] VARIANT borderColorDark();
    [propput, id(DISPID_IHTMLTABLECELL_WIDTH)] void width(VARIANT v);
    [propget, id(DISPID_IHTMLTABLECELL_WIDTH)] VARIANT width();
    [propput, id(DISPID_IHTMLTABLECELL_HEIGHT)] void height(VARIANT v);
    [propget, id(DISPID_IHTMLTABLECELL_HEIGHT)] VARIANT height();
    [propget, id(DISPID_IHTMLTABLECELL_CELLINDEX)] long cellIndex();
};
[
    uuid(3050f246-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLTableCell
{
    [default]           dispinterface DispHTMLTableCell;
    [source, default]   dispinterface HTMLTextContainerEvents;
    [source]            dispinterface HTMLTextContainerEvents2;
                        interface IHTMLElement;
                        interface IHTMLElement2;
                        interface IHTMLUniqueName;
                        interface IHTMLDOMNode;
                        interface IHTMLControlElement;
                        interface IHTMLTextContainer;
                        interface IHTMLTableCell;
};
cpp_quote("EXTERN_C const GUID CLSID_CTableCell;")
[
    hidden,
    uuid(3050f621-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface HTMLScriptEvents2
{
properties:
methods:
    [id(DISPID_HTMLELEMENTEVENTS2_ONHELP)] VARIANT_BOOL onhelp([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCLICK)] VARIANT_BOOL onclick([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDBLCLICK)] VARIANT_BOOL ondblclick([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONKEYPRESS)] VARIANT_BOOL onkeypress([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONKEYDOWN)] void onkeydown([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONKEYUP)] void onkeyup([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEOUT)] void onmouseout([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEOVER)] void onmouseover([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEMOVE)] void onmousemove([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEDOWN)] void onmousedown([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEUP)] void onmouseup([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONSELECTSTART)] VARIANT_BOOL onselectstart([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONFILTERCHANGE)] void onfilterchange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGSTART)] VARIANT_BOOL ondragstart([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFOREUPDATE)] VARIANT_BOOL onbeforeupdate([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONAFTERUPDATE)] void onafterupdate([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONERRORUPDATE)] VARIANT_BOOL onerrorupdate([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWEXIT)] VARIANT_BOOL onrowexit([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWENTER)] void onrowenter([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDATASETCHANGED)] void ondatasetchanged([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDATAAVAILABLE)] void ondataavailable([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDATASETCOMPLETE)] void ondatasetcomplete([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONLOSECAPTURE)] void onlosecapture([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONPROPERTYCHANGE)] void onpropertychange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONSCROLL)] void onscroll([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONFOCUS)] void onfocus([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBLUR)] void onblur([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONRESIZE)] void onresize([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAG)] VARIANT_BOOL ondrag([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGEND)] void ondragend([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGENTER)] VARIANT_BOOL ondragenter([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGOVER)] VARIANT_BOOL ondragover([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGLEAVE)] void ondragleave([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDROP)] VARIANT_BOOL ondrop([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFORECUT)] VARIANT_BOOL onbeforecut([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCUT)] VARIANT_BOOL oncut([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFORECOPY)] VARIANT_BOOL onbeforecopy([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCOPY)] VARIANT_BOOL oncopy([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFOREPASTE)] VARIANT_BOOL onbeforepaste([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONPASTE)] VARIANT_BOOL onpaste([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCONTEXTMENU)] VARIANT_BOOL oncontextmenu([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWSDELETE)] void onrowsdelete([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWSINSERTED)] void onrowsinserted([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCELLCHANGE)] void oncellchange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONREADYSTATECHANGE)] void onreadystatechange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLSCRIPTEVENTS2_ONERROR)] void onerror([in] IHTMLEventObj* pEvtObj);
};
[
    hidden,
    uuid(3050f3e2-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface HTMLScriptEvents
{
properties:
methods:
    [id(DISPID_HTMLELEMENTEVENTS_ONHELP)] VARIANT_BOOL onhelp();
    [id(DISPID_HTMLELEMENTEVENTS_ONCLICK)] VARIANT_BOOL onclick();
    [id(DISPID_HTMLELEMENTEVENTS_ONDBLCLICK)] VARIANT_BOOL ondblclick();
    [id(DISPID_HTMLELEMENTEVENTS_ONKEYPRESS)] VARIANT_BOOL onkeypress();
    [id(DISPID_HTMLELEMENTEVENTS_ONKEYDOWN)] void onkeydown();
    [id(DISPID_HTMLELEMENTEVENTS_ONKEYUP)] void onkeyup();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEOUT)] void onmouseout();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEOVER)] void onmouseover();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEMOVE)] void onmousemove();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEDOWN)] void onmousedown();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEUP)] void onmouseup();
    [id(DISPID_HTMLELEMENTEVENTS_ONSELECTSTART)] VARIANT_BOOL onselectstart();
    [id(DISPID_HTMLELEMENTEVENTS_ONFILTERCHANGE)] void onfilterchange();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGSTART)] VARIANT_BOOL ondragstart();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREUPDATE)] VARIANT_BOOL onbeforeupdate();
    [id(DISPID_HTMLELEMENTEVENTS_ONAFTERUPDATE)] void onafterupdate();
    [id(DISPID_HTMLELEMENTEVENTS_ONERRORUPDATE)] VARIANT_BOOL onerrorupdate();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWEXIT)] VARIANT_BOOL onrowexit();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWENTER)] void onrowenter();
    [id(DISPID_HTMLELEMENTEVENTS_ONDATASETCHANGED)] void ondatasetchanged();
    [id(DISPID_HTMLELEMENTEVENTS_ONDATAAVAILABLE)] void ondataavailable();
    [id(DISPID_HTMLELEMENTEVENTS_ONDATASETCOMPLETE)] void ondatasetcomplete();
    [id(DISPID_HTMLELEMENTEVENTS_ONLOSECAPTURE)] void onlosecapture();
    [id(DISPID_HTMLELEMENTEVENTS_ONPROPERTYCHANGE)] void onpropertychange();
    [id(DISPID_HTMLELEMENTEVENTS_ONSCROLL)] void onscroll();
    [id(DISPID_HTMLELEMENTEVENTS_ONFOCUS)] void onfocus();
    [id(DISPID_HTMLELEMENTEVENTS_ONBLUR)] void onblur();
    [id(DISPID_HTMLELEMENTEVENTS_ONRESIZE)] void onresize();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAG)] VARIANT_BOOL ondrag();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGEND)] void ondragend();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGENTER)] VARIANT_BOOL ondragenter();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGOVER)] VARIANT_BOOL ondragover();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGLEAVE)] void ondragleave();
    [id(DISPID_HTMLELEMENTEVENTS_ONDROP)] VARIANT_BOOL ondrop();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFORECUT)] VARIANT_BOOL onbeforecut();
    [id(DISPID_HTMLELEMENTEVENTS_ONCUT)] VARIANT_BOOL oncut();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFORECOPY)] VARIANT_BOOL onbeforecopy();
    [id(DISPID_HTMLELEMENTEVENTS_ONCOPY)] VARIANT_BOOL oncopy();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREPASTE)] VARIANT_BOOL onbeforepaste();
    [id(DISPID_HTMLELEMENTEVENTS_ONPASTE)] VARIANT_BOOL onpaste();
    [id(DISPID_HTMLELEMENTEVENTS_ONCONTEXTMENU)] VARIANT_BOOL oncontextmenu();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWSDELETE)] void onrowsdelete();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWSINSERTED)] void onrowsinserted();
    [id(DISPID_HTMLELEMENTEVENTS_ONCELLCHANGE)] void oncellchange();
    [id(DISPID_HTMLELEMENTEVENTS_ONREADYSTATECHANGE)] void onreadystatechange();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREEDITFOCUS)] void onbeforeeditfocus();
    [id(DISPID_HTMLSCRIPTEVENTS_ONERROR)] void onerror();
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f28b-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLScriptElement : IDispatch
{
    [propput, id(DISPID_IHTMLSCRIPTELEMENT_SRC), displaybind, bindable] HRESULT src([in] BSTR v);
    [propget, id(DISPID_IHTMLSCRIPTELEMENT_SRC), displaybind, bindable] HRESULT src([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLSCRIPTELEMENT_HTMLFOR), displaybind, bindable] HRESULT htmlFor([in] BSTR v);
    [propget, id(DISPID_IHTMLSCRIPTELEMENT_HTMLFOR), displaybind, bindable] HRESULT htmlFor([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLSCRIPTELEMENT_EVENT), displaybind, bindable] HRESULT event([in] BSTR v);
    [propget, id(DISPID_IHTMLSCRIPTELEMENT_EVENT), displaybind, bindable] HRESULT event([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLSCRIPTELEMENT_TEXT), displaybind, bindable] HRESULT text([in] BSTR v);
    [propget, id(DISPID_IHTMLSCRIPTELEMENT_TEXT), displaybind, bindable] HRESULT text([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLSCRIPTELEMENT_DEFER), displaybind, bindable] HRESULT defer([in] VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLSCRIPTELEMENT_DEFER), displaybind, bindable] HRESULT defer([retval, out] VARIANT_BOOL * p);
    [propget, id(DISPID_IHTMLSCRIPTELEMENT_READYSTATE)] HRESULT readyState([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLSCRIPTELEMENT_ONERROR), displaybind, bindable] HRESULT onerror([in] VARIANT v);
    [propget, id(DISPID_IHTMLSCRIPTELEMENT_ONERROR), displaybind, bindable] HRESULT onerror([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLSCRIPTELEMENT_TYPE), displaybind, bindable] HRESULT type([in] BSTR v);
    [propget, id(DISPID_IHTMLSCRIPTELEMENT_TYPE), displaybind, bindable] HRESULT type([retval, out] BSTR * p);
};
[
    hidden,
    uuid(3050f530-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTMLScriptElement
{
properties:
methods:
    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)] void setAttribute([in] BSTR strAttributeName,[in] VARIANT AttributeValue,[defaultvalue(1), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)] VARIANT getAttribute([in] BSTR strAttributeName,[defaultvalue(0), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)] VARIANT_BOOL removeAttribute([in] BSTR strAttributeName,[defaultvalue(1), in] LONG lFlags);
    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] void className(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] BSTR className();
    [propput, id(DISPID_IHTMLELEMENT_ID), bindable] void id(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_ID), bindable] BSTR id();
    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)] BSTR tagName();
    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)] IHTMLElement* parentElement();
    [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable] IHTMLStyle* style();
    [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] void onhelp(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] VARIANT onhelp();
    [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] void onclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] VARIANT onclick();
    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] void ondblclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] VARIANT ondblclick();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] void onkeydown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] VARIANT onkeydown();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] void onkeyup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] VARIANT onkeyup();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] void onkeypress(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] VARIANT onkeypress();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] void onmouseout(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] VARIANT onmouseout();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] void onmouseover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] VARIANT onmouseover();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] void onmousemove(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] VARIANT onmousemove();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] void onmousedown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] VARIANT onmousedown();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] void onmouseup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] VARIANT onmouseup();
    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)] IDispatch* document();
    [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] void title(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] BSTR title();
    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] void language(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] BSTR language();
    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] void onselectstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] VARIANT onselectstart();
    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)] void scrollIntoView([optional, in] VARIANT varargStart);
    [id(DISPID_IHTMLELEMENT_CONTAINS)] VARIANT_BOOL contains([in] IHTMLElement* pChild);
    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable] long sourceIndex();
    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)] VARIANT recordNumber();
    [propput, id(DISPID_IHTMLELEMENT_LANG)] void lang(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANG)] BSTR lang();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)] long offsetLeft();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)] long offsetTop();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)] long offsetWidth();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)] long offsetHeight();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)] IHTMLElement* offsetParent();
    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)] void innerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)] BSTR innerHTML();
    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)] void innerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)] BSTR innerText();
    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)] void outerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)] BSTR outerHTML();
    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)] void outerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)] BSTR outerText();
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)] void insertAdjacentHTML([in] BSTR where,[in] BSTR html);
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)] void insertAdjacentText([in] BSTR where,[in] BSTR text);
    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)] IHTMLElement* parentTextEdit();
    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)] VARIANT_BOOL isTextEdit();
    [id(DISPID_IHTMLELEMENT_CLICK)] void click();
    [propget, id(DISPID_IHTMLELEMENT_FILTERS)] IHTMLFiltersCollection* filters();
    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] void ondragstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] VARIANT ondragstart();
    [id(DISPID_IHTMLELEMENT_TOSTRING)] BSTR toString();
    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] void onbeforeupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] VARIANT onbeforeupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] void onafterupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] VARIANT onafterupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] void onerrorupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] VARIANT onerrorupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] void onrowexit(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] VARIANT onrowexit();
    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] void onrowenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] VARIANT onrowenter();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] void ondatasetchanged(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] VARIANT ondatasetchanged();
    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] void ondataavailable(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] VARIANT ondataavailable();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] void ondatasetcomplete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] VARIANT ondatasetcomplete();
    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] void onfilterchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] VARIANT onfilterchange();
    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)] IDispatch* children();
    [propget, id(DISPID_IHTMLELEMENT_ALL)] IDispatch* all();
    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)] BSTR scopeName();
    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)] void setCapture([defaultvalue(-1), in] VARIANT_BOOL containerCapture);
    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)] void releaseCapture();
    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] void onlosecapture(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] VARIANT onlosecapture();
    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)] BSTR componentFromPoint([in] long x,[in] long y);
    [id(DISPID_IHTMLELEMENT2_DOSCROLL)] void doScroll([optional, in] VARIANT component);
    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] void onscroll(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] VARIANT onscroll();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] void ondrag(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] VARIANT ondrag();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] void ondragend(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] VARIANT ondragend();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] void ondragenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] VARIANT ondragenter();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] void ondragover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] VARIANT ondragover();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] void ondragleave(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] VARIANT ondragleave();
    [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] void ondrop(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] VARIANT ondrop();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] void onbeforecut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] VARIANT onbeforecut();
    [propput, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] void oncut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] VARIANT oncut();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] void onbeforecopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] VARIANT onbeforecopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] void oncopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] VARIANT oncopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] void onbeforepaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] VARIANT onbeforepaste();
    [propput, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] void onpaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] VARIANT onpaste();
    [propget, id(DISPID_IHTMLELEMENT2_CURRENTSTYLE), nonbrowsable] IHTMLCurrentStyle* currentStyle();
    [propput, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] void onpropertychange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] VARIANT onpropertychange();
    [id(DISPID_IHTMLELEMENT2_GETCLIENTRECTS)] IHTMLRectCollection* getClientRects();
    [id(DISPID_IHTMLELEMENT2_GETBOUNDINGCLIENTRECT)] IHTMLRect* getBoundingClientRect();
    [id(DISPID_IHTMLELEMENT2_SETEXPRESSION)] void setExpression([in] BSTR propname,[in] BSTR expression,[defaultvalue(""), in] BSTR language);
    [id(DISPID_IHTMLELEMENT2_GETEXPRESSION)] VARIANT getExpression([in] BSTR propname);
    [id(DISPID_IHTMLELEMENT2_REMOVEEXPRESSION)] VARIANT_BOOL removeExpression([in] BSTR propname);
    [propput, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] void tabIndex(short v);
    [propget, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] short tabIndex();
    [id(DISPID_IHTMLELEMENT2_FOCUS)] void focus();
    [propput, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] void accessKey(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] BSTR accessKey();
    [propput, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] void onblur(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] VARIANT onblur();
    [propput, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] void onfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] VARIANT onfocus();
    [propput, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] void onresize(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] VARIANT onresize();
    [id(DISPID_IHTMLELEMENT2_BLUR)] void blur();
    [id(DISPID_IHTMLELEMENT2_ADDFILTER)] void addFilter([in] IUnknown* pUnk);
    [id(DISPID_IHTMLELEMENT2_REMOVEFILTER)] void removeFilter([in] IUnknown* pUnk);
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTHEIGHT), displaybind, bindable] long clientHeight();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTWIDTH), displaybind, bindable] long clientWidth();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTTOP), displaybind, bindable] long clientTop();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTLEFT), displaybind, bindable] long clientLeft();
    [id(DISPID_IHTMLELEMENT2_ATTACHEVENT)] VARIANT_BOOL attachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [id(DISPID_IHTMLELEMENT2_DETACHEVENT)] void detachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATE)] VARIANT readyState();
    [propput, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] void onreadystatechange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] VARIANT onreadystatechange();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] void onrowsdelete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] VARIANT onrowsdelete();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] void onrowsinserted(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] VARIANT onrowsinserted();
    [propput, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] void oncellchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] VARIANT oncellchange();
    [propput, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] void dir(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] BSTR dir();
    [id(DISPID_IHTMLELEMENT2_CREATECONTROLRANGE)] IDispatch* createControlRange();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLHEIGHT), displaybind, bindable] long scrollHeight();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLWIDTH), displaybind, bindable] long scrollWidth();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] void scrollTop(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] long scrollTop();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] void scrollLeft(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] long scrollLeft();
    [id(DISPID_IHTMLELEMENT2_CLEARATTRIBUTES)] void clearAttributes();
    [id(DISPID_IHTMLELEMENT2_MERGEATTRIBUTES)] void mergeAttributes([in] IHTMLElement* mergeThis);
    [propput, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] void oncontextmenu(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] VARIANT oncontextmenu();
    [id(DISPID_IHTMLELEMENT2_INSERTADJACENTELEMENT)] IHTMLElement* insertAdjacentElement([in] BSTR where,[in] IHTMLElement* insertedElement);
    [id(DISPID_IHTMLELEMENT2_APPLYELEMENT)] IHTMLElement* applyElement([in] IHTMLElement* apply,[in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_GETADJACENTTEXT)] BSTR getAdjacentText([in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_REPLACEADJACENTTEXT)] BSTR replaceAdjacentText([in] BSTR where,[in] BSTR newText);
    [propget, id(DISPID_IHTMLELEMENT2_CANHAVECHILDREN)] VARIANT_BOOL canHaveChildren();
    [id(DISPID_IHTMLELEMENT2_ADDBEHAVIOR)] long addBehavior([in] BSTR bstrUrl,[optional, in] VARIANT* pvarFactory);
    [id(DISPID_IHTMLELEMENT2_REMOVEBEHAVIOR)] VARIANT_BOOL removeBehavior([in] long cookie);
    [propget, id(DISPID_IHTMLELEMENT2_RUNTIMESTYLE), nonbrowsable] IHTMLStyle* runtimeStyle();
    [propget, id(DISPID_IHTMLELEMENT2_BEHAVIORURNS)] IDispatch* behaviorUrns();
    [propput, id(DISPID_IHTMLELEMENT2_TAGURN)] void tagUrn(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_TAGURN)] BSTR tagUrn();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] void onbeforeeditfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] VARIANT onbeforeeditfocus();
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATEVALUE), hidden, restricted] long readyStateValue();
    [id(DISPID_IHTMLELEMENT2_GETELEMENTSBYTAGNAME)] IHTMLElementCollection* getElementsByTagName([in] BSTR v);
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUENUMBER), hidden] long uniqueNumber();
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUEID), hidden] BSTR uniqueID();
    [propget, id(DISPID_IHTMLDOMNODE_NODETYPE)] long nodeType();
    [propget, id(DISPID_IHTMLDOMNODE_PARENTNODE)] IHTMLDOMNode* parentNode();
    [id(DISPID_IHTMLDOMNODE_HASCHILDNODES)] VARIANT_BOOL hasChildNodes();
    [propget, id(DISPID_IHTMLDOMNODE_CHILDNODES)] IDispatch* childNodes();
    [propget, id(DISPID_IHTMLDOMNODE_ATTRIBUTES)] IDispatch* attributes();
    [id(DISPID_IHTMLDOMNODE_INSERTBEFORE)] IHTMLDOMNode* insertBefore([in] IHTMLDOMNode* newChild,[optional, in] VARIANT refChild);
    [id(DISPID_IHTMLDOMNODE_REMOVECHILD)] IHTMLDOMNode* removeChild([in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_REPLACECHILD)] IHTMLDOMNode* replaceChild([in] IHTMLDOMNode* newChild,[in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_CLONENODE)] IHTMLDOMNode* cloneNode([in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_REMOVENODE)] IHTMLDOMNode* removeNode([defaultvalue(0), in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_SWAPNODE)] IHTMLDOMNode* swapNode([in] IHTMLDOMNode* otherNode);
    [id(DISPID_IHTMLDOMNODE_REPLACENODE)] IHTMLDOMNode* replaceNode([in] IHTMLDOMNode* replacement);
    [id(DISPID_IHTMLDOMNODE_APPENDCHILD)] IHTMLDOMNode* appendChild([in] IHTMLDOMNode* newChild);
    [propget, id(DISPID_IHTMLDOMNODE_NODENAME)] BSTR nodeName();
    [propput, id(DISPID_IHTMLDOMNODE_NODEVALUE)] void nodeValue(VARIANT v);
    [propget, id(DISPID_IHTMLDOMNODE_NODEVALUE)] VARIANT nodeValue();
    [propget, id(DISPID_IHTMLDOMNODE_FIRSTCHILD)] IHTMLDOMNode* firstChild();
    [propget, id(DISPID_IHTMLDOMNODE_LASTCHILD)] IHTMLDOMNode* lastChild();
    [propget, id(DISPID_IHTMLDOMNODE_PREVIOUSSIBLING)] IHTMLDOMNode* previousSibling();
    [propget, id(DISPID_IHTMLDOMNODE_NEXTSIBLING)] IHTMLDOMNode* nextSibling();
    [propput, id(DISPID_IHTMLSCRIPTELEMENT_SRC), displaybind, bindable] void src(BSTR v);
    [propget, id(DISPID_IHTMLSCRIPTELEMENT_SRC), displaybind, bindable] BSTR src();
    [propput, id(DISPID_IHTMLSCRIPTELEMENT_HTMLFOR), displaybind, bindable] void htmlFor(BSTR v);
    [propget, id(DISPID_IHTMLSCRIPTELEMENT_HTMLFOR), displaybind, bindable] BSTR htmlFor();
    [propput, id(DISPID_IHTMLSCRIPTELEMENT_EVENT), displaybind, bindable] void event(BSTR v);
    [propget, id(DISPID_IHTMLSCRIPTELEMENT_EVENT), displaybind, bindable] BSTR event();
    [propput, id(DISPID_IHTMLSCRIPTELEMENT_TEXT), displaybind, bindable] void text(BSTR v);
    [propget, id(DISPID_IHTMLSCRIPTELEMENT_TEXT), displaybind, bindable] BSTR text();
    [propput, id(DISPID_IHTMLSCRIPTELEMENT_DEFER), displaybind, bindable] void defer(VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLSCRIPTELEMENT_DEFER), displaybind, bindable] VARIANT_BOOL defer();
    [propput, id(DISPID_IHTMLSCRIPTELEMENT_ONERROR), displaybind, bindable] void onerror(VARIANT v);
    [propget, id(DISPID_IHTMLSCRIPTELEMENT_ONERROR), displaybind, bindable] VARIANT onerror();
    [propput, id(DISPID_IHTMLSCRIPTELEMENT_TYPE), displaybind, bindable] void type(BSTR v);
    [propget, id(DISPID_IHTMLSCRIPTELEMENT_TYPE), displaybind, bindable] BSTR type();
};
[
    uuid(3050f28c-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLScriptElement
{
    [default]           dispinterface DispHTMLScriptElement;
    [source, default]   dispinterface HTMLScriptEvents;
    [source]            dispinterface HTMLScriptEvents2;
                        interface IHTMLElement;
                        interface IHTMLElement2;
                        interface IHTMLUniqueName;
                        interface IHTMLDOMNode;
                        interface IHTMLScriptElement;
};
cpp_quote("EXTERN_C const GUID CLSID_CScriptElement;")
[
    odl,
    oleautomation,
    dual,
    uuid(3050f38a-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLNoShowElement : IDispatch
{
};
[
    hidden,
    uuid(3050f528-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTMLNoShowElement
{
properties:
methods:
    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)] void setAttribute([in] BSTR strAttributeName,[in] VARIANT AttributeValue,[defaultvalue(1), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)] VARIANT getAttribute([in] BSTR strAttributeName,[defaultvalue(0), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)] VARIANT_BOOL removeAttribute([in] BSTR strAttributeName,[defaultvalue(1), in] LONG lFlags);
    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] void className(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] BSTR className();
    [propput, id(DISPID_IHTMLELEMENT_ID), bindable] void id(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_ID), bindable] BSTR id();
    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)] BSTR tagName();
    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)] IHTMLElement* parentElement();
    [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable] IHTMLStyle* style();
    [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] void onhelp(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] VARIANT onhelp();
    [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] void onclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] VARIANT onclick();
    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] void ondblclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] VARIANT ondblclick();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] void onkeydown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] VARIANT onkeydown();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] void onkeyup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] VARIANT onkeyup();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] void onkeypress(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] VARIANT onkeypress();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] void onmouseout(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] VARIANT onmouseout();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] void onmouseover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] VARIANT onmouseover();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] void onmousemove(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] VARIANT onmousemove();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] void onmousedown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] VARIANT onmousedown();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] void onmouseup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] VARIANT onmouseup();
    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)] IDispatch* document();
    [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] void title(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] BSTR title();
    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] void language(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] BSTR language();
    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] void onselectstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] VARIANT onselectstart();
    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)] void scrollIntoView([optional, in] VARIANT varargStart);
    [id(DISPID_IHTMLELEMENT_CONTAINS)] VARIANT_BOOL contains([in] IHTMLElement* pChild);
    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable] long sourceIndex();
    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)] VARIANT recordNumber();
    [propput, id(DISPID_IHTMLELEMENT_LANG)] void lang(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANG)] BSTR lang();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)] long offsetLeft();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)] long offsetTop();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)] long offsetWidth();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)] long offsetHeight();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)] IHTMLElement* offsetParent();
    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)] void innerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)] BSTR innerHTML();
    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)] void innerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)] BSTR innerText();
    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)] void outerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)] BSTR outerHTML();
    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)] void outerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)] BSTR outerText();
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)] void insertAdjacentHTML([in] BSTR where,[in] BSTR html);
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)] void insertAdjacentText([in] BSTR where,[in] BSTR text);
    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)] IHTMLElement* parentTextEdit();
    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)] VARIANT_BOOL isTextEdit();
    [id(DISPID_IHTMLELEMENT_CLICK)] void click();
    [propget, id(DISPID_IHTMLELEMENT_FILTERS)] IHTMLFiltersCollection* filters();
    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] void ondragstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] VARIANT ondragstart();
    [id(DISPID_IHTMLELEMENT_TOSTRING)] BSTR toString();
    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] void onbeforeupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] VARIANT onbeforeupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] void onafterupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] VARIANT onafterupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] void onerrorupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] VARIANT onerrorupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] void onrowexit(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] VARIANT onrowexit();
    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] void onrowenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] VARIANT onrowenter();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] void ondatasetchanged(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] VARIANT ondatasetchanged();
    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] void ondataavailable(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] VARIANT ondataavailable();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] void ondatasetcomplete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] VARIANT ondatasetcomplete();
    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] void onfilterchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] VARIANT onfilterchange();
    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)] IDispatch* children();
    [propget, id(DISPID_IHTMLELEMENT_ALL)] IDispatch* all();
    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)] BSTR scopeName();
    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)] void setCapture([defaultvalue(-1), in] VARIANT_BOOL containerCapture);
    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)] void releaseCapture();
    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] void onlosecapture(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] VARIANT onlosecapture();
    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)] BSTR componentFromPoint([in] long x,[in] long y);
    [id(DISPID_IHTMLELEMENT2_DOSCROLL)] void doScroll([optional, in] VARIANT component);
    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] void onscroll(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] VARIANT onscroll();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] void ondrag(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] VARIANT ondrag();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] void ondragend(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] VARIANT ondragend();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] void ondragenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] VARIANT ondragenter();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] void ondragover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] VARIANT ondragover();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] void ondragleave(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] VARIANT ondragleave();
    [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] void ondrop(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] VARIANT ondrop();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] void onbeforecut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] VARIANT onbeforecut();
    [propput, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] void oncut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] VARIANT oncut();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] void onbeforecopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] VARIANT onbeforecopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] void oncopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] VARIANT oncopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] void onbeforepaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] VARIANT onbeforepaste();
    [propput, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] void onpaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] VARIANT onpaste();
    [propget, id(DISPID_IHTMLELEMENT2_CURRENTSTYLE), nonbrowsable] IHTMLCurrentStyle* currentStyle();
    [propput, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] void onpropertychange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] VARIANT onpropertychange();
    [id(DISPID_IHTMLELEMENT2_GETCLIENTRECTS)] IHTMLRectCollection* getClientRects();
    [id(DISPID_IHTMLELEMENT2_GETBOUNDINGCLIENTRECT)] IHTMLRect* getBoundingClientRect();
    [id(DISPID_IHTMLELEMENT2_SETEXPRESSION)] void setExpression([in] BSTR propname,[in] BSTR expression,[defaultvalue(""), in] BSTR language);
    [id(DISPID_IHTMLELEMENT2_GETEXPRESSION)] VARIANT getExpression([in] BSTR propname);
    [id(DISPID_IHTMLELEMENT2_REMOVEEXPRESSION)] VARIANT_BOOL removeExpression([in] BSTR propname);
    [propput, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] void tabIndex(short v);
    [propget, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] short tabIndex();
    [id(DISPID_IHTMLELEMENT2_FOCUS)] void focus();
    [propput, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] void accessKey(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] BSTR accessKey();
    [propput, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] void onblur(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] VARIANT onblur();
    [propput, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] void onfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] VARIANT onfocus();
    [propput, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] void onresize(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] VARIANT onresize();
    [id(DISPID_IHTMLELEMENT2_BLUR)] void blur();
    [id(DISPID_IHTMLELEMENT2_ADDFILTER)] void addFilter([in] IUnknown* pUnk);
    [id(DISPID_IHTMLELEMENT2_REMOVEFILTER)] void removeFilter([in] IUnknown* pUnk);
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTHEIGHT), displaybind, bindable] long clientHeight();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTWIDTH), displaybind, bindable] long clientWidth();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTTOP), displaybind, bindable] long clientTop();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTLEFT), displaybind, bindable] long clientLeft();
    [id(DISPID_IHTMLELEMENT2_ATTACHEVENT)] VARIANT_BOOL attachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [id(DISPID_IHTMLELEMENT2_DETACHEVENT)] void detachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATE)] VARIANT readyState();
    [propput, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] void onreadystatechange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] VARIANT onreadystatechange();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] void onrowsdelete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] VARIANT onrowsdelete();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] void onrowsinserted(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] VARIANT onrowsinserted();
    [propput, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] void oncellchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] VARIANT oncellchange();
    [propput, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] void dir(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] BSTR dir();
    [id(DISPID_IHTMLELEMENT2_CREATECONTROLRANGE)] IDispatch* createControlRange();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLHEIGHT), displaybind, bindable] long scrollHeight();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLWIDTH), displaybind, bindable] long scrollWidth();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] void scrollTop(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] long scrollTop();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] void scrollLeft(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] long scrollLeft();
    [id(DISPID_IHTMLELEMENT2_CLEARATTRIBUTES)] void clearAttributes();
    [id(DISPID_IHTMLELEMENT2_MERGEATTRIBUTES)] void mergeAttributes([in] IHTMLElement* mergeThis);
    [propput, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] void oncontextmenu(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] VARIANT oncontextmenu();
    [id(DISPID_IHTMLELEMENT2_INSERTADJACENTELEMENT)] IHTMLElement* insertAdjacentElement([in] BSTR where,[in] IHTMLElement* insertedElement);
    [id(DISPID_IHTMLELEMENT2_APPLYELEMENT)] IHTMLElement* applyElement([in] IHTMLElement* apply,[in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_GETADJACENTTEXT)] BSTR getAdjacentText([in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_REPLACEADJACENTTEXT)] BSTR replaceAdjacentText([in] BSTR where,[in] BSTR newText);
    [propget, id(DISPID_IHTMLELEMENT2_CANHAVECHILDREN)] VARIANT_BOOL canHaveChildren();
    [id(DISPID_IHTMLELEMENT2_ADDBEHAVIOR)] long addBehavior([in] BSTR bstrUrl,[optional, in] VARIANT* pvarFactory);
    [id(DISPID_IHTMLELEMENT2_REMOVEBEHAVIOR)] VARIANT_BOOL removeBehavior([in] long cookie);
    [propget, id(DISPID_IHTMLELEMENT2_RUNTIMESTYLE), nonbrowsable] IHTMLStyle* runtimeStyle();
    [propget, id(DISPID_IHTMLELEMENT2_BEHAVIORURNS)] IDispatch* behaviorUrns();
    [propput, id(DISPID_IHTMLELEMENT2_TAGURN)] void tagUrn(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_TAGURN)] BSTR tagUrn();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] void onbeforeeditfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] VARIANT onbeforeeditfocus();
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATEVALUE), hidden, restricted] long readyStateValue();
    [id(DISPID_IHTMLELEMENT2_GETELEMENTSBYTAGNAME)] IHTMLElementCollection* getElementsByTagName([in] BSTR v);
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUENUMBER), hidden] long uniqueNumber();
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUEID), hidden] BSTR uniqueID();
    [propget, id(DISPID_IHTMLDOMNODE_NODETYPE)] long nodeType();
    [propget, id(DISPID_IHTMLDOMNODE_PARENTNODE)] IHTMLDOMNode* parentNode();
    [id(DISPID_IHTMLDOMNODE_HASCHILDNODES)] VARIANT_BOOL hasChildNodes();
    [propget, id(DISPID_IHTMLDOMNODE_CHILDNODES)] IDispatch* childNodes();
    [propget, id(DISPID_IHTMLDOMNODE_ATTRIBUTES)] IDispatch* attributes();
    [id(DISPID_IHTMLDOMNODE_INSERTBEFORE)] IHTMLDOMNode* insertBefore([in] IHTMLDOMNode* newChild,[optional, in] VARIANT refChild);
    [id(DISPID_IHTMLDOMNODE_REMOVECHILD)] IHTMLDOMNode* removeChild([in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_REPLACECHILD)] IHTMLDOMNode* replaceChild([in] IHTMLDOMNode* newChild,[in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_CLONENODE)] IHTMLDOMNode* cloneNode([in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_REMOVENODE)] IHTMLDOMNode* removeNode([defaultvalue(0), in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_SWAPNODE)] IHTMLDOMNode* swapNode([in] IHTMLDOMNode* otherNode);
    [id(DISPID_IHTMLDOMNODE_REPLACENODE)] IHTMLDOMNode* replaceNode([in] IHTMLDOMNode* replacement);
    [id(DISPID_IHTMLDOMNODE_APPENDCHILD)] IHTMLDOMNode* appendChild([in] IHTMLDOMNode* newChild);
    [propget, id(DISPID_IHTMLDOMNODE_NODENAME)] BSTR nodeName();
    [propput, id(DISPID_IHTMLDOMNODE_NODEVALUE)] void nodeValue(VARIANT v);
    [propget, id(DISPID_IHTMLDOMNODE_NODEVALUE)] VARIANT nodeValue();
    [propget, id(DISPID_IHTMLDOMNODE_FIRSTCHILD)] IHTMLDOMNode* firstChild();
    [propget, id(DISPID_IHTMLDOMNODE_LASTCHILD)] IHTMLDOMNode* lastChild();
    [propget, id(DISPID_IHTMLDOMNODE_PREVIOUSSIBLING)] IHTMLDOMNode* previousSibling();
    [propget, id(DISPID_IHTMLDOMNODE_NEXTSIBLING)] IHTMLDOMNode* nextSibling();
};
[
    uuid(3050f38b-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLNoShowElement
{
    [default]           dispinterface DispHTMLNoShowElement;
    [source, default]   dispinterface HTMLElementEvents;
    [source]            dispinterface HTMLElementEvents2;
                        interface IHTMLElement;
                        interface IHTMLElement2;
                        interface IHTMLUniqueName;
                        interface IHTMLDOMNode;
                        interface IHTMLNoShowElement;
};
cpp_quote("EXTERN_C const GUID CLSID_CNoShowElement;")
[
    hidden,
    uuid(3050f620-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface HTMLObjectElementEvents2
{
properties:
methods:
    [id(DISPID_HTMLOBJECTELEMENTEVENTS2_ONBEFOREUPDATE)] VARIANT_BOOL onbeforeupdate([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLOBJECTELEMENTEVENTS2_ONAFTERUPDATE)] void onafterupdate([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLOBJECTELEMENTEVENTS2_ONERRORUPDATE)] VARIANT_BOOL onerrorupdate([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLOBJECTELEMENTEVENTS2_ONROWEXIT)] VARIANT_BOOL onrowexit([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLOBJECTELEMENTEVENTS2_ONROWENTER)] void onrowenter([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLOBJECTELEMENTEVENTS2_ONDATASETCHANGED)] void ondatasetchanged([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLOBJECTELEMENTEVENTS2_ONDATAAVAILABLE)] void ondataavailable([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLOBJECTELEMENTEVENTS2_ONDATASETCOMPLETE)] void ondatasetcomplete([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLOBJECTELEMENTEVENTS2_ONERROR)] VARIANT_BOOL onerror([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLOBJECTELEMENTEVENTS2_ONROWSDELETE)] void onrowsdelete([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLOBJECTELEMENTEVENTS2_ONROWSINSERTED)] void onrowsinserted([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLOBJECTELEMENTEVENTS2_ONCELLCHANGE)] void oncellchange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLOBJECTELEMENTEVENTS2_ONREADYSTATECHANGE)] void onreadystatechange([in] IHTMLEventObj* pEvtObj);
};
[
    hidden,
    uuid(3050f3c4-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface HTMLObjectElementEvents
{
properties:
methods:
    [id(DISPID_HTMLOBJECTELEMENTEVENTS_ONBEFOREUPDATE)] VARIANT_BOOL onbeforeupdate();
    [id(DISPID_HTMLOBJECTELEMENTEVENTS_ONAFTERUPDATE)] void onafterupdate();
    [id(DISPID_HTMLOBJECTELEMENTEVENTS_ONERRORUPDATE)] VARIANT_BOOL onerrorupdate();
    [id(DISPID_HTMLOBJECTELEMENTEVENTS_ONROWEXIT)] VARIANT_BOOL onrowexit();
    [id(DISPID_HTMLOBJECTELEMENTEVENTS_ONROWENTER)] void onrowenter();
    [id(DISPID_HTMLOBJECTELEMENTEVENTS_ONDATASETCHANGED)] void ondatasetchanged();
    [id(DISPID_HTMLOBJECTELEMENTEVENTS_ONDATAAVAILABLE)] void ondataavailable();
    [id(DISPID_HTMLOBJECTELEMENTEVENTS_ONDATASETCOMPLETE)] void ondatasetcomplete();
    [id(DISPID_HTMLOBJECTELEMENTEVENTS_ONERROR)] VARIANT_BOOL onerror();
    [id(DISPID_HTMLOBJECTELEMENTEVENTS_ONROWSDELETE)] void onrowsdelete();
    [id(DISPID_HTMLOBJECTELEMENTEVENTS_ONROWSINSERTED)] void onrowsinserted();
    [id(DISPID_HTMLOBJECTELEMENTEVENTS_ONCELLCHANGE)] void oncellchange();
    [id(DISPID_HTMLOBJECTELEMENTEVENTS_ONREADYSTATECHANGE)] void onreadystatechange();
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f24f-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLObjectElement : IDispatch
{
    [propget, id(DISPID_IHTMLOBJECTELEMENT_OBJECT), hidden] HRESULT object([retval, out] IDispatch* * p);
    [propget, id(DISPID_IHTMLOBJECTELEMENT_CLASSID), hidden] HRESULT classid([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLOBJECTELEMENT_DATA), hidden] HRESULT data([retval, out] BSTR * p);
    [propputref, id(DISPID_IHTMLOBJECTELEMENT_RECORDSET), hidden] HRESULT recordset([in] IDispatch* v);
    [propget, id(DISPID_IHTMLOBJECTELEMENT_RECORDSET), hidden] HRESULT recordset([retval, out] IDispatch* * p);
    [propput, id(DISPID_IHTMLOBJECTELEMENT_ALIGN), displaybind, bindable] HRESULT align([in] BSTR v);
    [propget, id(DISPID_IHTMLOBJECTELEMENT_ALIGN), displaybind, bindable] HRESULT align([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLOBJECTELEMENT_NAME), displaybind, bindable] HRESULT name([in] BSTR v);
    [propget, id(DISPID_IHTMLOBJECTELEMENT_NAME), displaybind, bindable] HRESULT name([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLOBJECTELEMENT_CODEBASE), displaybind, bindable] HRESULT codeBase([in] BSTR v);
    [propget, id(DISPID_IHTMLOBJECTELEMENT_CODEBASE), displaybind, bindable] HRESULT codeBase([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLOBJECTELEMENT_CODETYPE), displaybind, bindable] HRESULT codeType([in] BSTR v);
    [propget, id(DISPID_IHTMLOBJECTELEMENT_CODETYPE), displaybind, bindable] HRESULT codeType([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLOBJECTELEMENT_CODE), displaybind, bindable] HRESULT code([in] BSTR v);
    [propget, id(DISPID_IHTMLOBJECTELEMENT_CODE), displaybind, bindable] HRESULT code([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLOBJECTELEMENT_BASEHREF)] HRESULT BaseHref([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLOBJECTELEMENT_TYPE), displaybind, bindable] HRESULT type([in] BSTR v);
    [propget, id(DISPID_IHTMLOBJECTELEMENT_TYPE), displaybind, bindable] HRESULT type([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLOBJECTELEMENT_FORM)] HRESULT form([retval, out] IHTMLFormElement* * p);
    [propput, id(DISPID_IHTMLOBJECTELEMENT_WIDTH)] HRESULT width([in] VARIANT v);
    [propget, id(DISPID_IHTMLOBJECTELEMENT_WIDTH)] HRESULT width([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLOBJECTELEMENT_HEIGHT)] HRESULT height([in] VARIANT v);
    [propget, id(DISPID_IHTMLOBJECTELEMENT_HEIGHT)] HRESULT height([retval, out] VARIANT * p);
    [propget, id(DISPID_IHTMLOBJECTELEMENT_READYSTATE), hidden] HRESULT readyState([retval, out] long * p);
    [propput, id(DISPID_IHTMLOBJECTELEMENT_ONREADYSTATECHANGE), displaybind, bindable] HRESULT onreadystatechange([in] VARIANT v);
    [propget, id(DISPID_IHTMLOBJECTELEMENT_ONREADYSTATECHANGE), displaybind, bindable] HRESULT onreadystatechange([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLOBJECTELEMENT_ONERROR), displaybind, bindable] HRESULT onerror([in] VARIANT v);
    [propget, id(DISPID_IHTMLOBJECTELEMENT_ONERROR), displaybind, bindable] HRESULT onerror([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLOBJECTELEMENT_ALTHTML)] HRESULT altHtml([in] BSTR v);
    [propget, id(DISPID_IHTMLOBJECTELEMENT_ALTHTML)] HRESULT altHtml([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLOBJECTELEMENT_VSPACE)] HRESULT vspace([in] long v);
    [propget, id(DISPID_IHTMLOBJECTELEMENT_VSPACE)] HRESULT vspace([retval, out] long * p);
    [propput, id(DISPID_IHTMLOBJECTELEMENT_HSPACE)] HRESULT hspace([in] long v);
    [propget, id(DISPID_IHTMLOBJECTELEMENT_HSPACE)] HRESULT hspace([retval, out] long * p);
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f4cd-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLObjectElement2 : IDispatch
{
    [id(DISPID_IHTMLOBJECTELEMENT2_NAMEDRECORDSET)] HRESULT namedRecordset([in] BSTR dataMember,[optional, in] VARIANT* hierarchy,[retval, out] IDispatch** ppRecordset);
    [propput, id(DISPID_IHTMLOBJECTELEMENT2_CLASSID), hidden] HRESULT classid([in] BSTR v);
    [propget, id(DISPID_IHTMLOBJECTELEMENT2_CLASSID), hidden] HRESULT classid([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLOBJECTELEMENT2_DATA), hidden] HRESULT data([in] BSTR v);
    [propget, id(DISPID_IHTMLOBJECTELEMENT2_DATA), hidden] HRESULT data([retval, out] BSTR * p);
};
[
    hidden,
    uuid(3050f529-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTMLObjectElement
{
properties:
methods:
    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)] void setAttribute([in] BSTR strAttributeName,[in] VARIANT AttributeValue,[defaultvalue(1), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)] VARIANT getAttribute([in] BSTR strAttributeName,[defaultvalue(0), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)] VARIANT_BOOL removeAttribute([in] BSTR strAttributeName,[defaultvalue(1), in] LONG lFlags);
    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] void className(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] BSTR className();
    [propput, id(DISPID_IHTMLELEMENT_ID), bindable] void id(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_ID), bindable] BSTR id();
    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)] BSTR tagName();
    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)] IHTMLElement* parentElement();
    [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable] IHTMLStyle* style();
    [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] void onhelp(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] VARIANT onhelp();
    [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] void onclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] VARIANT onclick();
    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] void ondblclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] VARIANT ondblclick();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] void onkeydown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] VARIANT onkeydown();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] void onkeyup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] VARIANT onkeyup();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] void onkeypress(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] VARIANT onkeypress();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] void onmouseout(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] VARIANT onmouseout();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] void onmouseover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] VARIANT onmouseover();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] void onmousemove(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] VARIANT onmousemove();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] void onmousedown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] VARIANT onmousedown();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] void onmouseup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] VARIANT onmouseup();
    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)] IDispatch* document();
    [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] void title(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] BSTR title();
    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] void language(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] BSTR language();
    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] void onselectstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] VARIANT onselectstart();
    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)] void scrollIntoView([optional, in] VARIANT varargStart);
    [id(DISPID_IHTMLELEMENT_CONTAINS)] VARIANT_BOOL contains([in] IHTMLElement* pChild);
    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable] long sourceIndex();
    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)] VARIANT recordNumber();
    [propput, id(DISPID_IHTMLELEMENT_LANG)] void lang(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANG)] BSTR lang();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)] long offsetLeft();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)] long offsetTop();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)] long offsetWidth();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)] long offsetHeight();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)] IHTMLElement* offsetParent();
    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)] void innerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)] BSTR innerHTML();
    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)] void innerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)] BSTR innerText();
    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)] void outerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)] BSTR outerHTML();
    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)] void outerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)] BSTR outerText();
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)] void insertAdjacentHTML([in] BSTR where,[in] BSTR html);
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)] void insertAdjacentText([in] BSTR where,[in] BSTR text);
    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)] IHTMLElement* parentTextEdit();
    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)] VARIANT_BOOL isTextEdit();
    [id(DISPID_IHTMLELEMENT_CLICK)] void click();
    [propget, id(DISPID_IHTMLELEMENT_FILTERS)] IHTMLFiltersCollection* filters();
    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] void ondragstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] VARIANT ondragstart();
    [id(DISPID_IHTMLELEMENT_TOSTRING)] BSTR toString();
    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] void onbeforeupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] VARIANT onbeforeupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] void onafterupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] VARIANT onafterupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] void onerrorupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] VARIANT onerrorupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] void onrowexit(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] VARIANT onrowexit();
    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] void onrowenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] VARIANT onrowenter();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] void ondatasetchanged(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] VARIANT ondatasetchanged();
    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] void ondataavailable(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] VARIANT ondataavailable();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] void ondatasetcomplete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] VARIANT ondatasetcomplete();
    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] void onfilterchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] VARIANT onfilterchange();
    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)] IDispatch* children();
    [propget, id(DISPID_IHTMLELEMENT_ALL)] IDispatch* all();
    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)] BSTR scopeName();
    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)] void setCapture([defaultvalue(-1), in] VARIANT_BOOL containerCapture);
    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)] void releaseCapture();
    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] void onlosecapture(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] VARIANT onlosecapture();
    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)] BSTR componentFromPoint([in] long x,[in] long y);
    [id(DISPID_IHTMLELEMENT2_DOSCROLL)] void doScroll([optional, in] VARIANT component);
    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] void onscroll(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] VARIANT onscroll();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] void ondrag(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] VARIANT ondrag();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] void ondragend(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] VARIANT ondragend();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] void ondragenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] VARIANT ondragenter();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] void ondragover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] VARIANT ondragover();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] void ondragleave(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] VARIANT ondragleave();
    [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] void ondrop(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] VARIANT ondrop();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] void onbeforecut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] VARIANT onbeforecut();
    [propput, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] void oncut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] VARIANT oncut();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] void onbeforecopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] VARIANT onbeforecopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] void oncopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] VARIANT oncopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] void onbeforepaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] VARIANT onbeforepaste();
    [propput, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] void onpaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] VARIANT onpaste();
    [propget, id(DISPID_IHTMLELEMENT2_CURRENTSTYLE), nonbrowsable] IHTMLCurrentStyle* currentStyle();
    [propput, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] void onpropertychange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] VARIANT onpropertychange();
    [id(DISPID_IHTMLELEMENT2_GETCLIENTRECTS)] IHTMLRectCollection* getClientRects();
    [id(DISPID_IHTMLELEMENT2_GETBOUNDINGCLIENTRECT)] IHTMLRect* getBoundingClientRect();
    [id(DISPID_IHTMLELEMENT2_SETEXPRESSION)] void setExpression([in] BSTR propname,[in] BSTR expression,[defaultvalue(""), in] BSTR language);
    [id(DISPID_IHTMLELEMENT2_GETEXPRESSION)] VARIANT getExpression([in] BSTR propname);
    [id(DISPID_IHTMLELEMENT2_REMOVEEXPRESSION)] VARIANT_BOOL removeExpression([in] BSTR propname);
    [propput, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] void tabIndex(short v);
    [propget, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] short tabIndex();
    [id(DISPID_IHTMLELEMENT2_FOCUS)] void focus();
    [propput, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] void accessKey(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] BSTR accessKey();
    [propput, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] void onblur(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] VARIANT onblur();
    [propput, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] void onfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] VARIANT onfocus();
    [propput, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] void onresize(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] VARIANT onresize();
    [id(DISPID_IHTMLELEMENT2_BLUR)] void blur();
    [id(DISPID_IHTMLELEMENT2_ADDFILTER)] void addFilter([in] IUnknown* pUnk);
    [id(DISPID_IHTMLELEMENT2_REMOVEFILTER)] void removeFilter([in] IUnknown* pUnk);
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTHEIGHT), displaybind, bindable] long clientHeight();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTWIDTH), displaybind, bindable] long clientWidth();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTTOP), displaybind, bindable] long clientTop();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTLEFT), displaybind, bindable] long clientLeft();
    [id(DISPID_IHTMLELEMENT2_ATTACHEVENT)] VARIANT_BOOL attachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [id(DISPID_IHTMLELEMENT2_DETACHEVENT)] void detachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATE)] VARIANT readyState();
    [propput, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] void onreadystatechange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] VARIANT onreadystatechange();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] void onrowsdelete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] VARIANT onrowsdelete();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] void onrowsinserted(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] VARIANT onrowsinserted();
    [propput, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] void oncellchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] VARIANT oncellchange();
    [propput, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] void dir(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] BSTR dir();
    [id(DISPID_IHTMLELEMENT2_CREATECONTROLRANGE)] IDispatch* createControlRange();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLHEIGHT), displaybind, bindable] long scrollHeight();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLWIDTH), displaybind, bindable] long scrollWidth();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] void scrollTop(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] long scrollTop();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] void scrollLeft(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] long scrollLeft();
    [id(DISPID_IHTMLELEMENT2_CLEARATTRIBUTES)] void clearAttributes();
    [id(DISPID_IHTMLELEMENT2_MERGEATTRIBUTES)] void mergeAttributes([in] IHTMLElement* mergeThis);
    [propput, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] void oncontextmenu(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] VARIANT oncontextmenu();
    [id(DISPID_IHTMLELEMENT2_INSERTADJACENTELEMENT)] IHTMLElement* insertAdjacentElement([in] BSTR where,[in] IHTMLElement* insertedElement);
    [id(DISPID_IHTMLELEMENT2_APPLYELEMENT)] IHTMLElement* applyElement([in] IHTMLElement* apply,[in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_GETADJACENTTEXT)] BSTR getAdjacentText([in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_REPLACEADJACENTTEXT)] BSTR replaceAdjacentText([in] BSTR where,[in] BSTR newText);
    [propget, id(DISPID_IHTMLELEMENT2_CANHAVECHILDREN)] VARIANT_BOOL canHaveChildren();
    [id(DISPID_IHTMLELEMENT2_ADDBEHAVIOR)] long addBehavior([in] BSTR bstrUrl,[optional, in] VARIANT* pvarFactory);
    [id(DISPID_IHTMLELEMENT2_REMOVEBEHAVIOR)] VARIANT_BOOL removeBehavior([in] long cookie);
    [propget, id(DISPID_IHTMLELEMENT2_RUNTIMESTYLE), nonbrowsable] IHTMLStyle* runtimeStyle();
    [propget, id(DISPID_IHTMLELEMENT2_BEHAVIORURNS)] IDispatch* behaviorUrns();
    [propput, id(DISPID_IHTMLELEMENT2_TAGURN)] void tagUrn(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_TAGURN)] BSTR tagUrn();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] void onbeforeeditfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] VARIANT onbeforeeditfocus();
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATEVALUE), hidden, restricted] long readyStateValue();
    [id(DISPID_IHTMLELEMENT2_GETELEMENTSBYTAGNAME)] IHTMLElementCollection* getElementsByTagName([in] BSTR v);
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUENUMBER), hidden] long uniqueNumber();
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUEID), hidden] BSTR uniqueID();
    [propget, id(DISPID_IHTMLDOMNODE_NODETYPE)] long nodeType();
    [propget, id(DISPID_IHTMLDOMNODE_PARENTNODE)] IHTMLDOMNode* parentNode();
    [id(DISPID_IHTMLDOMNODE_HASCHILDNODES)] VARIANT_BOOL hasChildNodes();
    [propget, id(DISPID_IHTMLDOMNODE_CHILDNODES)] IDispatch* childNodes();
    [propget, id(DISPID_IHTMLDOMNODE_ATTRIBUTES)] IDispatch* attributes();
    [id(DISPID_IHTMLDOMNODE_INSERTBEFORE)] IHTMLDOMNode* insertBefore([in] IHTMLDOMNode* newChild,[optional, in] VARIANT refChild);
    [id(DISPID_IHTMLDOMNODE_REMOVECHILD)] IHTMLDOMNode* removeChild([in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_REPLACECHILD)] IHTMLDOMNode* replaceChild([in] IHTMLDOMNode* newChild,[in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_CLONENODE)] IHTMLDOMNode* cloneNode([in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_REMOVENODE)] IHTMLDOMNode* removeNode([defaultvalue(0), in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_SWAPNODE)] IHTMLDOMNode* swapNode([in] IHTMLDOMNode* otherNode);
    [id(DISPID_IHTMLDOMNODE_REPLACENODE)] IHTMLDOMNode* replaceNode([in] IHTMLDOMNode* replacement);
    [id(DISPID_IHTMLDOMNODE_APPENDCHILD)] IHTMLDOMNode* appendChild([in] IHTMLDOMNode* newChild);
    [propget, id(DISPID_IHTMLDOMNODE_NODENAME)] BSTR nodeName();
    [propput, id(DISPID_IHTMLDOMNODE_NODEVALUE)] void nodeValue(VARIANT v);
    [propget, id(DISPID_IHTMLDOMNODE_NODEVALUE)] VARIANT nodeValue();
    [propget, id(DISPID_IHTMLDOMNODE_FIRSTCHILD)] IHTMLDOMNode* firstChild();
    [propget, id(DISPID_IHTMLDOMNODE_LASTCHILD)] IHTMLDOMNode* lastChild();
    [propget, id(DISPID_IHTMLDOMNODE_PREVIOUSSIBLING)] IHTMLDOMNode* previousSibling();
    [propget, id(DISPID_IHTMLDOMNODE_NEXTSIBLING)] IHTMLDOMNode* nextSibling();
    [propput, id(DISPID_IHTMLDATABINDING_DATAFLD)] void dataFld(BSTR v);
    [propget, id(DISPID_IHTMLDATABINDING_DATAFLD)] BSTR dataFld();
    [propput, id(DISPID_IHTMLDATABINDING_DATASRC)] void dataSrc(BSTR v);
    [propget, id(DISPID_IHTMLDATABINDING_DATASRC)] BSTR dataSrc();
    [propput, id(DISPID_IHTMLDATABINDING_DATAFORMATAS)] void dataFormatAs(BSTR v);
    [propget, id(DISPID_IHTMLDATABINDING_DATAFORMATAS)] BSTR dataFormatAs();
    [propget, id(DISPID_IHTMLOBJECTELEMENT_OBJECT), hidden] IDispatch* object();
    [propputref, id(DISPID_IHTMLOBJECTELEMENT_RECORDSET), hidden] void recordset(IDispatch* v);
    [propget, id(DISPID_IHTMLOBJECTELEMENT_RECORDSET), hidden] IDispatch* recordset();
    [propput, id(DISPID_IHTMLOBJECTELEMENT_ALIGN), displaybind, bindable] void align(BSTR v);
    [propget, id(DISPID_IHTMLOBJECTELEMENT_ALIGN), displaybind, bindable] BSTR align();
    [propput, id(DISPID_IHTMLOBJECTELEMENT_NAME), displaybind, bindable] void name(BSTR v);
    [propget, id(DISPID_IHTMLOBJECTELEMENT_NAME), displaybind, bindable] BSTR name();
    [propput, id(DISPID_IHTMLOBJECTELEMENT_CODEBASE), displaybind, bindable] void codeBase(BSTR v);
    [propget, id(DISPID_IHTMLOBJECTELEMENT_CODEBASE), displaybind, bindable] BSTR codeBase();
    [propput, id(DISPID_IHTMLOBJECTELEMENT_CODETYPE), displaybind, bindable] void codeType(BSTR v);
    [propget, id(DISPID_IHTMLOBJECTELEMENT_CODETYPE), displaybind, bindable] BSTR codeType();
    [propput, id(DISPID_IHTMLOBJECTELEMENT_CODE), displaybind, bindable] void code(BSTR v);
    [propget, id(DISPID_IHTMLOBJECTELEMENT_CODE), displaybind, bindable] BSTR code();
    [propget, id(DISPID_IHTMLOBJECTELEMENT_BASEHREF)] BSTR BaseHref();
    [propput, id(DISPID_IHTMLOBJECTELEMENT_TYPE), displaybind, bindable] void type(BSTR v);
    [propget, id(DISPID_IHTMLOBJECTELEMENT_TYPE), displaybind, bindable] BSTR type();
    [propget, id(DISPID_IHTMLOBJECTELEMENT_FORM)] IHTMLFormElement* form();
    [propput, id(DISPID_IHTMLOBJECTELEMENT_WIDTH)] void width(VARIANT v);
    [propget, id(DISPID_IHTMLOBJECTELEMENT_WIDTH)] VARIANT width();
    [propput, id(DISPID_IHTMLOBJECTELEMENT_HEIGHT)] void height(VARIANT v);
    [propget, id(DISPID_IHTMLOBJECTELEMENT_HEIGHT)] VARIANT height();
    [propput, id(DISPID_IHTMLOBJECTELEMENT_ONERROR), displaybind, bindable] void onerror(VARIANT v);
    [propget, id(DISPID_IHTMLOBJECTELEMENT_ONERROR), displaybind, bindable] VARIANT onerror();
    [propput, id(DISPID_IHTMLOBJECTELEMENT_ALTHTML)] void altHtml(BSTR v);
    [propget, id(DISPID_IHTMLOBJECTELEMENT_ALTHTML)] BSTR altHtml();
    [propput, id(DISPID_IHTMLOBJECTELEMENT_VSPACE)] void vspace(long v);
    [propget, id(DISPID_IHTMLOBJECTELEMENT_VSPACE)] long vspace();
    [propput, id(DISPID_IHTMLOBJECTELEMENT_HSPACE)] void hspace(long v);
    [propget, id(DISPID_IHTMLOBJECTELEMENT_HSPACE)] long hspace();
    [id(DISPID_IHTMLOBJECTELEMENT2_NAMEDRECORDSET)] IDispatch* namedRecordset([in] BSTR dataMember,[optional, in] VARIANT* hierarchy);
    [propput, id(DISPID_IHTMLOBJECTELEMENT2_CLASSID), hidden] void classid(BSTR v);
    [propget, id(DISPID_IHTMLOBJECTELEMENT2_CLASSID), hidden] BSTR classid();
    [propput, id(DISPID_IHTMLOBJECTELEMENT2_DATA), hidden] void data(BSTR v);
    [propget, id(DISPID_IHTMLOBJECTELEMENT2_DATA), hidden] BSTR data();
};
[
    uuid(3050f24e-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLObjectElement
{
    [default]           dispinterface DispHTMLObjectElement;
    [source, default]   dispinterface HTMLObjectElementEvents;
    [source]            dispinterface HTMLObjectElementEvents2;
                        interface IHTMLElement;
                        interface IHTMLElement2;
                        interface IHTMLUniqueName;
                        interface IHTMLDOMNode;
                        interface IHTMLDatabinding;
                        interface IHTMLControlElement;
                        interface IHTMLObjectElement;
                        interface IHTMLObjectElement2;
};
cpp_quote("EXTERN_C const GUID CLSID_CObjectElement;")
typedef enum _frameScrolling
{
    frameScrollingyes = 1,
    frameScrollingno = 2,
    frameScrollingauto = 4,
    frameScrolling_Max = 2147483647L
} frameScrolling;

[
    odl,
    oleautomation,
    dual,
    uuid(3050f311-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLFrameBase : IDispatch
{
    [propput, id(DISPID_IHTMLFRAMEBASE_SRC)] HRESULT src([in] BSTR v);
    [propget, id(DISPID_IHTMLFRAMEBASE_SRC)] HRESULT src([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLFRAMEBASE_NAME)] HRESULT name([in] BSTR v);
    [propget, id(DISPID_IHTMLFRAMEBASE_NAME)] HRESULT name([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLFRAMEBASE_BORDER)] HRESULT border([in] VARIANT v);
    [propget, id(DISPID_IHTMLFRAMEBASE_BORDER)] HRESULT border([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLFRAMEBASE_FRAMEBORDER)] HRESULT frameBorder([in] BSTR v);
    [propget, id(DISPID_IHTMLFRAMEBASE_FRAMEBORDER)] HRESULT frameBorder([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLFRAMEBASE_FRAMESPACING)] HRESULT frameSpacing([in] VARIANT v);
    [propget, id(DISPID_IHTMLFRAMEBASE_FRAMESPACING)] HRESULT frameSpacing([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLFRAMEBASE_MARGINWIDTH)] HRESULT marginWidth([in] VARIANT v);
    [propget, id(DISPID_IHTMLFRAMEBASE_MARGINWIDTH)] HRESULT marginWidth([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLFRAMEBASE_MARGINHEIGHT)] HRESULT marginHeight([in] VARIANT v);
    [propget, id(DISPID_IHTMLFRAMEBASE_MARGINHEIGHT)] HRESULT marginHeight([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLFRAMEBASE_NORESIZE)] HRESULT noResize([in] VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLFRAMEBASE_NORESIZE)] HRESULT noResize([retval, out] VARIANT_BOOL * p);
    [propput, id(DISPID_IHTMLFRAMEBASE_SCROLLING)] HRESULT scrolling([in] BSTR v);
    [propget, id(DISPID_IHTMLFRAMEBASE_SCROLLING)] HRESULT scrolling([retval, out] BSTR * p);
};
[
    hidden,
    uuid(3050f541-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTMLFrameBase
{
properties:
methods:
    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)] void setAttribute([in] BSTR strAttributeName,[in] VARIANT AttributeValue,[defaultvalue(1), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)] VARIANT getAttribute([in] BSTR strAttributeName,[defaultvalue(0), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)] VARIANT_BOOL removeAttribute([in] BSTR strAttributeName,[defaultvalue(1), in] LONG lFlags);
    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] void className(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] BSTR className();
    [propput, id(DISPID_IHTMLELEMENT_ID), bindable] void id(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_ID), bindable] BSTR id();
    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)] BSTR tagName();
    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)] IHTMLElement* parentElement();
    [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable] IHTMLStyle* style();
    [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] void onhelp(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] VARIANT onhelp();
    [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] void onclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] VARIANT onclick();
    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] void ondblclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] VARIANT ondblclick();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] void onkeydown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] VARIANT onkeydown();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] void onkeyup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] VARIANT onkeyup();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] void onkeypress(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] VARIANT onkeypress();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] void onmouseout(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] VARIANT onmouseout();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] void onmouseover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] VARIANT onmouseover();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] void onmousemove(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] VARIANT onmousemove();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] void onmousedown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] VARIANT onmousedown();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] void onmouseup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] VARIANT onmouseup();
    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)] IDispatch* document();
    [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] void title(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] BSTR title();
    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] void language(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] BSTR language();
    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] void onselectstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] VARIANT onselectstart();
    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)] void scrollIntoView([optional, in] VARIANT varargStart);
    [id(DISPID_IHTMLELEMENT_CONTAINS)] VARIANT_BOOL contains([in] IHTMLElement* pChild);
    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable] long sourceIndex();
    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)] VARIANT recordNumber();
    [propput, id(DISPID_IHTMLELEMENT_LANG)] void lang(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANG)] BSTR lang();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)] long offsetLeft();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)] long offsetTop();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)] long offsetWidth();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)] long offsetHeight();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)] IHTMLElement* offsetParent();
    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)] void innerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)] BSTR innerHTML();
    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)] void innerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)] BSTR innerText();
    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)] void outerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)] BSTR outerHTML();
    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)] void outerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)] BSTR outerText();
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)] void insertAdjacentHTML([in] BSTR where,[in] BSTR html);
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)] void insertAdjacentText([in] BSTR where,[in] BSTR text);
    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)] IHTMLElement* parentTextEdit();
    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)] VARIANT_BOOL isTextEdit();
    [id(DISPID_IHTMLELEMENT_CLICK)] void click();
    [propget, id(DISPID_IHTMLELEMENT_FILTERS)] IHTMLFiltersCollection* filters();
    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] void ondragstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] VARIANT ondragstart();
    [id(DISPID_IHTMLELEMENT_TOSTRING)] BSTR toString();
    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] void onbeforeupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] VARIANT onbeforeupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] void onafterupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] VARIANT onafterupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] void onerrorupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] VARIANT onerrorupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] void onrowexit(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] VARIANT onrowexit();
    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] void onrowenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] VARIANT onrowenter();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] void ondatasetchanged(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] VARIANT ondatasetchanged();
    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] void ondataavailable(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] VARIANT ondataavailable();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] void ondatasetcomplete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] VARIANT ondatasetcomplete();
    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] void onfilterchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] VARIANT onfilterchange();
    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)] IDispatch* children();
    [propget, id(DISPID_IHTMLELEMENT_ALL)] IDispatch* all();
    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)] BSTR scopeName();
    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)] void setCapture([defaultvalue(-1), in] VARIANT_BOOL containerCapture);
    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)] void releaseCapture();
    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] void onlosecapture(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] VARIANT onlosecapture();
    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)] BSTR componentFromPoint([in] long x,[in] long y);
    [id(DISPID_IHTMLELEMENT2_DOSCROLL)] void doScroll([optional, in] VARIANT component);
    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] void onscroll(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] VARIANT onscroll();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] void ondrag(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] VARIANT ondrag();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] void ondragend(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] VARIANT ondragend();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] void ondragenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] VARIANT ondragenter();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] void ondragover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] VARIANT ondragover();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] void ondragleave(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] VARIANT ondragleave();
    [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] void ondrop(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] VARIANT ondrop();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] void onbeforecut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] VARIANT onbeforecut();
    [propput, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] void oncut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] VARIANT oncut();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] void onbeforecopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] VARIANT onbeforecopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] void oncopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] VARIANT oncopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] void onbeforepaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] VARIANT onbeforepaste();
    [propput, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] void onpaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] VARIANT onpaste();
    [propget, id(DISPID_IHTMLELEMENT2_CURRENTSTYLE), nonbrowsable] IHTMLCurrentStyle* currentStyle();
    [propput, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] void onpropertychange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] VARIANT onpropertychange();
    [id(DISPID_IHTMLELEMENT2_GETCLIENTRECTS)] IHTMLRectCollection* getClientRects();
    [id(DISPID_IHTMLELEMENT2_GETBOUNDINGCLIENTRECT)] IHTMLRect* getBoundingClientRect();
    [id(DISPID_IHTMLELEMENT2_SETEXPRESSION)] void setExpression([in] BSTR propname,[in] BSTR expression,[defaultvalue(""), in] BSTR language);
    [id(DISPID_IHTMLELEMENT2_GETEXPRESSION)] VARIANT getExpression([in] BSTR propname);
    [id(DISPID_IHTMLELEMENT2_REMOVEEXPRESSION)] VARIANT_BOOL removeExpression([in] BSTR propname);
    [propput, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] void tabIndex(short v);
    [propget, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] short tabIndex();
    [id(DISPID_IHTMLELEMENT2_FOCUS)] void focus();
    [propput, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] void accessKey(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] BSTR accessKey();
    [propput, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] void onblur(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] VARIANT onblur();
    [propput, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] void onfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] VARIANT onfocus();
    [propput, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] void onresize(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] VARIANT onresize();
    [id(DISPID_IHTMLELEMENT2_BLUR)] void blur();
    [id(DISPID_IHTMLELEMENT2_ADDFILTER)] void addFilter([in] IUnknown* pUnk);
    [id(DISPID_IHTMLELEMENT2_REMOVEFILTER)] void removeFilter([in] IUnknown* pUnk);
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTHEIGHT), displaybind, bindable] long clientHeight();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTWIDTH), displaybind, bindable] long clientWidth();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTTOP), displaybind, bindable] long clientTop();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTLEFT), displaybind, bindable] long clientLeft();
    [id(DISPID_IHTMLELEMENT2_ATTACHEVENT)] VARIANT_BOOL attachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [id(DISPID_IHTMLELEMENT2_DETACHEVENT)] void detachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATE)] VARIANT readyState();
    [propput, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] void onreadystatechange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] VARIANT onreadystatechange();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] void onrowsdelete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] VARIANT onrowsdelete();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] void onrowsinserted(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] VARIANT onrowsinserted();
    [propput, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] void oncellchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] VARIANT oncellchange();
    [propput, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] void dir(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] BSTR dir();
    [id(DISPID_IHTMLELEMENT2_CREATECONTROLRANGE)] IDispatch* createControlRange();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLHEIGHT), displaybind, bindable] long scrollHeight();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLWIDTH), displaybind, bindable] long scrollWidth();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] void scrollTop(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] long scrollTop();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] void scrollLeft(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] long scrollLeft();
    [id(DISPID_IHTMLELEMENT2_CLEARATTRIBUTES)] void clearAttributes();
    [id(DISPID_IHTMLELEMENT2_MERGEATTRIBUTES)] void mergeAttributes([in] IHTMLElement* mergeThis);
    [propput, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] void oncontextmenu(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] VARIANT oncontextmenu();
    [id(DISPID_IHTMLELEMENT2_INSERTADJACENTELEMENT)] IHTMLElement* insertAdjacentElement([in] BSTR where,[in] IHTMLElement* insertedElement);
    [id(DISPID_IHTMLELEMENT2_APPLYELEMENT)] IHTMLElement* applyElement([in] IHTMLElement* apply,[in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_GETADJACENTTEXT)] BSTR getAdjacentText([in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_REPLACEADJACENTTEXT)] BSTR replaceAdjacentText([in] BSTR where,[in] BSTR newText);
    [propget, id(DISPID_IHTMLELEMENT2_CANHAVECHILDREN)] VARIANT_BOOL canHaveChildren();
    [id(DISPID_IHTMLELEMENT2_ADDBEHAVIOR)] long addBehavior([in] BSTR bstrUrl,[optional, in] VARIANT* pvarFactory);
    [id(DISPID_IHTMLELEMENT2_REMOVEBEHAVIOR)] VARIANT_BOOL removeBehavior([in] long cookie);
    [propget, id(DISPID_IHTMLELEMENT2_RUNTIMESTYLE), nonbrowsable] IHTMLStyle* runtimeStyle();
    [propget, id(DISPID_IHTMLELEMENT2_BEHAVIORURNS)] IDispatch* behaviorUrns();
    [propput, id(DISPID_IHTMLELEMENT2_TAGURN)] void tagUrn(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_TAGURN)] BSTR tagUrn();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] void onbeforeeditfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] VARIANT onbeforeeditfocus();
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATEVALUE), hidden, restricted] long readyStateValue();
    [id(DISPID_IHTMLELEMENT2_GETELEMENTSBYTAGNAME)] IHTMLElementCollection* getElementsByTagName([in] BSTR v);
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUENUMBER), hidden] long uniqueNumber();
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUEID), hidden] BSTR uniqueID();
    [propget, id(DISPID_IHTMLDOMNODE_NODETYPE)] long nodeType();
    [propget, id(DISPID_IHTMLDOMNODE_PARENTNODE)] IHTMLDOMNode* parentNode();
    [id(DISPID_IHTMLDOMNODE_HASCHILDNODES)] VARIANT_BOOL hasChildNodes();
    [propget, id(DISPID_IHTMLDOMNODE_CHILDNODES)] IDispatch* childNodes();
    [propget, id(DISPID_IHTMLDOMNODE_ATTRIBUTES)] IDispatch* attributes();
    [id(DISPID_IHTMLDOMNODE_INSERTBEFORE)] IHTMLDOMNode* insertBefore([in] IHTMLDOMNode* newChild,[optional, in] VARIANT refChild);
    [id(DISPID_IHTMLDOMNODE_REMOVECHILD)] IHTMLDOMNode* removeChild([in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_REPLACECHILD)] IHTMLDOMNode* replaceChild([in] IHTMLDOMNode* newChild,[in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_CLONENODE)] IHTMLDOMNode* cloneNode([in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_REMOVENODE)] IHTMLDOMNode* removeNode([defaultvalue(0), in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_SWAPNODE)] IHTMLDOMNode* swapNode([in] IHTMLDOMNode* otherNode);
    [id(DISPID_IHTMLDOMNODE_REPLACENODE)] IHTMLDOMNode* replaceNode([in] IHTMLDOMNode* replacement);
    [id(DISPID_IHTMLDOMNODE_APPENDCHILD)] IHTMLDOMNode* appendChild([in] IHTMLDOMNode* newChild);
    [propget, id(DISPID_IHTMLDOMNODE_NODENAME)] BSTR nodeName();
    [propput, id(DISPID_IHTMLDOMNODE_NODEVALUE)] void nodeValue(VARIANT v);
    [propget, id(DISPID_IHTMLDOMNODE_NODEVALUE)] VARIANT nodeValue();
    [propget, id(DISPID_IHTMLDOMNODE_FIRSTCHILD)] IHTMLDOMNode* firstChild();
    [propget, id(DISPID_IHTMLDOMNODE_LASTCHILD)] IHTMLDOMNode* lastChild();
    [propget, id(DISPID_IHTMLDOMNODE_PREVIOUSSIBLING)] IHTMLDOMNode* previousSibling();
    [propget, id(DISPID_IHTMLDOMNODE_NEXTSIBLING)] IHTMLDOMNode* nextSibling();
    [propput, id(DISPID_IHTMLFRAMEBASE_SRC)] void src(BSTR v);
    [propget, id(DISPID_IHTMLFRAMEBASE_SRC)] BSTR src();
    [propput, id(DISPID_IHTMLFRAMEBASE_NAME)] void name(BSTR v);
    [propget, id(DISPID_IHTMLFRAMEBASE_NAME)] BSTR name();
    [propput, id(DISPID_IHTMLFRAMEBASE_BORDER)] void border(VARIANT v);
    [propget, id(DISPID_IHTMLFRAMEBASE_BORDER)] VARIANT border();
    [propput, id(DISPID_IHTMLFRAMEBASE_FRAMEBORDER)] void frameBorder(BSTR v);
    [propget, id(DISPID_IHTMLFRAMEBASE_FRAMEBORDER)] BSTR frameBorder();
    [propput, id(DISPID_IHTMLFRAMEBASE_FRAMESPACING)] void frameSpacing(VARIANT v);
    [propget, id(DISPID_IHTMLFRAMEBASE_FRAMESPACING)] VARIANT frameSpacing();
    [propput, id(DISPID_IHTMLFRAMEBASE_MARGINWIDTH)] void marginWidth(VARIANT v);
    [propget, id(DISPID_IHTMLFRAMEBASE_MARGINWIDTH)] VARIANT marginWidth();
    [propput, id(DISPID_IHTMLFRAMEBASE_MARGINHEIGHT)] void marginHeight(VARIANT v);
    [propget, id(DISPID_IHTMLFRAMEBASE_MARGINHEIGHT)] VARIANT marginHeight();
    [propput, id(DISPID_IHTMLFRAMEBASE_NORESIZE)] void noResize(VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLFRAMEBASE_NORESIZE)] VARIANT_BOOL noResize();
    [propput, id(DISPID_IHTMLFRAMEBASE_SCROLLING)] void scrolling(BSTR v);
    [propget, id(DISPID_IHTMLFRAMEBASE_SCROLLING)] BSTR scrolling();
};
[
    uuid(3050f312-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLFrameBase
{
    [default]           dispinterface DispHTMLFrameBase;
    [source, default]   dispinterface HTMLControlElementEvents;
    [source]            dispinterface HTMLControlElementEvents2;
                        interface IHTMLElement;
                        interface IHTMLElement2;
                        interface IHTMLUniqueName;
                        interface IHTMLDOMNode;
                        interface IHTMLControlElement;
                        interface IHTMLFrameBase;
};
cpp_quote("EXTERN_C const GUID CLSID_CFrameSite;")
[
    odl,
    oleautomation,
    dual,
    uuid(3050f313-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLFrameElement : IDispatch
{
    [propput, id(DISPID_IHTMLFRAMEELEMENT_BORDERCOLOR)] HRESULT borderColor([in] VARIANT v);
    [propget, id(DISPID_IHTMLFRAMEELEMENT_BORDERCOLOR)] HRESULT borderColor([retval, out] VARIANT * p);
};
[
    hidden,
    uuid(3050f513-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTMLFrameElement
{
properties:
methods:
    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)] void setAttribute([in] BSTR strAttributeName,[in] VARIANT AttributeValue,[defaultvalue(1), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)] VARIANT getAttribute([in] BSTR strAttributeName,[defaultvalue(0), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)] VARIANT_BOOL removeAttribute([in] BSTR strAttributeName,[defaultvalue(1), in] LONG lFlags);
    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] void className(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] BSTR className();
    [propput, id(DISPID_IHTMLELEMENT_ID), bindable] void id(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_ID), bindable] BSTR id();
    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)] BSTR tagName();
    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)] IHTMLElement* parentElement();
    [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable] IHTMLStyle* style();
    [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] void onhelp(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] VARIANT onhelp();
    [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] void onclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] VARIANT onclick();
    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] void ondblclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] VARIANT ondblclick();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] void onkeydown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] VARIANT onkeydown();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] void onkeyup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] VARIANT onkeyup();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] void onkeypress(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] VARIANT onkeypress();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] void onmouseout(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] VARIANT onmouseout();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] void onmouseover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] VARIANT onmouseover();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] void onmousemove(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] VARIANT onmousemove();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] void onmousedown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] VARIANT onmousedown();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] void onmouseup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] VARIANT onmouseup();
    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)] IDispatch* document();
    [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] void title(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] BSTR title();
    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] void language(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] BSTR language();
    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] void onselectstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] VARIANT onselectstart();
    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)] void scrollIntoView([optional, in] VARIANT varargStart);
    [id(DISPID_IHTMLELEMENT_CONTAINS)] VARIANT_BOOL contains([in] IHTMLElement* pChild);
    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable] long sourceIndex();
    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)] VARIANT recordNumber();
    [propput, id(DISPID_IHTMLELEMENT_LANG)] void lang(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANG)] BSTR lang();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)] long offsetLeft();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)] long offsetTop();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)] long offsetWidth();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)] long offsetHeight();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)] IHTMLElement* offsetParent();
    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)] void innerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)] BSTR innerHTML();
    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)] void innerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)] BSTR innerText();
    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)] void outerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)] BSTR outerHTML();
    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)] void outerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)] BSTR outerText();
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)] void insertAdjacentHTML([in] BSTR where,[in] BSTR html);
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)] void insertAdjacentText([in] BSTR where,[in] BSTR text);
    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)] IHTMLElement* parentTextEdit();
    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)] VARIANT_BOOL isTextEdit();
    [id(DISPID_IHTMLELEMENT_CLICK)] void click();
    [propget, id(DISPID_IHTMLELEMENT_FILTERS)] IHTMLFiltersCollection* filters();
    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] void ondragstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] VARIANT ondragstart();
    [id(DISPID_IHTMLELEMENT_TOSTRING)] BSTR toString();
    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] void onbeforeupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] VARIANT onbeforeupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] void onafterupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] VARIANT onafterupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] void onerrorupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] VARIANT onerrorupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] void onrowexit(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] VARIANT onrowexit();
    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] void onrowenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] VARIANT onrowenter();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] void ondatasetchanged(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] VARIANT ondatasetchanged();
    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] void ondataavailable(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] VARIANT ondataavailable();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] void ondatasetcomplete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] VARIANT ondatasetcomplete();
    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] void onfilterchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] VARIANT onfilterchange();
    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)] IDispatch* children();
    [propget, id(DISPID_IHTMLELEMENT_ALL)] IDispatch* all();
    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)] BSTR scopeName();
    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)] void setCapture([defaultvalue(-1), in] VARIANT_BOOL containerCapture);
    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)] void releaseCapture();
    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] void onlosecapture(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] VARIANT onlosecapture();
    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)] BSTR componentFromPoint([in] long x,[in] long y);
    [id(DISPID_IHTMLELEMENT2_DOSCROLL)] void doScroll([optional, in] VARIANT component);
    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] void onscroll(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] VARIANT onscroll();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] void ondrag(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] VARIANT ondrag();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] void ondragend(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] VARIANT ondragend();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] void ondragenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] VARIANT ondragenter();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] void ondragover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] VARIANT ondragover();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] void ondragleave(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] VARIANT ondragleave();
    [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] void ondrop(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] VARIANT ondrop();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] void onbeforecut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] VARIANT onbeforecut();
    [propput, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] void oncut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] VARIANT oncut();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] void onbeforecopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] VARIANT onbeforecopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] void oncopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] VARIANT oncopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] void onbeforepaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] VARIANT onbeforepaste();
    [propput, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] void onpaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] VARIANT onpaste();
    [propget, id(DISPID_IHTMLELEMENT2_CURRENTSTYLE), nonbrowsable] IHTMLCurrentStyle* currentStyle();
    [propput, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] void onpropertychange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] VARIANT onpropertychange();
    [id(DISPID_IHTMLELEMENT2_GETCLIENTRECTS)] IHTMLRectCollection* getClientRects();
    [id(DISPID_IHTMLELEMENT2_GETBOUNDINGCLIENTRECT)] IHTMLRect* getBoundingClientRect();
    [id(DISPID_IHTMLELEMENT2_SETEXPRESSION)] void setExpression([in] BSTR propname,[in] BSTR expression,[defaultvalue(""), in] BSTR language);
    [id(DISPID_IHTMLELEMENT2_GETEXPRESSION)] VARIANT getExpression([in] BSTR propname);
    [id(DISPID_IHTMLELEMENT2_REMOVEEXPRESSION)] VARIANT_BOOL removeExpression([in] BSTR propname);
    [propput, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] void tabIndex(short v);
    [propget, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] short tabIndex();
    [id(DISPID_IHTMLELEMENT2_FOCUS)] void focus();
    [propput, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] void accessKey(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] BSTR accessKey();
    [propput, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] void onblur(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] VARIANT onblur();
    [propput, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] void onfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] VARIANT onfocus();
    [propput, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] void onresize(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] VARIANT onresize();
    [id(DISPID_IHTMLELEMENT2_BLUR)] void blur();
    [id(DISPID_IHTMLELEMENT2_ADDFILTER)] void addFilter([in] IUnknown* pUnk);
    [id(DISPID_IHTMLELEMENT2_REMOVEFILTER)] void removeFilter([in] IUnknown* pUnk);
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTHEIGHT), displaybind, bindable] long clientHeight();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTWIDTH), displaybind, bindable] long clientWidth();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTTOP), displaybind, bindable] long clientTop();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTLEFT), displaybind, bindable] long clientLeft();
    [id(DISPID_IHTMLELEMENT2_ATTACHEVENT)] VARIANT_BOOL attachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [id(DISPID_IHTMLELEMENT2_DETACHEVENT)] void detachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATE)] VARIANT readyState();
    [propput, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] void onreadystatechange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] VARIANT onreadystatechange();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] void onrowsdelete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] VARIANT onrowsdelete();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] void onrowsinserted(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] VARIANT onrowsinserted();
    [propput, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] void oncellchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] VARIANT oncellchange();
    [propput, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] void dir(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] BSTR dir();
    [id(DISPID_IHTMLELEMENT2_CREATECONTROLRANGE)] IDispatch* createControlRange();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLHEIGHT), displaybind, bindable] long scrollHeight();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLWIDTH), displaybind, bindable] long scrollWidth();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] void scrollTop(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] long scrollTop();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] void scrollLeft(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] long scrollLeft();
    [id(DISPID_IHTMLELEMENT2_CLEARATTRIBUTES)] void clearAttributes();
    [id(DISPID_IHTMLELEMENT2_MERGEATTRIBUTES)] void mergeAttributes([in] IHTMLElement* mergeThis);
    [propput, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] void oncontextmenu(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] VARIANT oncontextmenu();
    [id(DISPID_IHTMLELEMENT2_INSERTADJACENTELEMENT)] IHTMLElement* insertAdjacentElement([in] BSTR where,[in] IHTMLElement* insertedElement);
    [id(DISPID_IHTMLELEMENT2_APPLYELEMENT)] IHTMLElement* applyElement([in] IHTMLElement* apply,[in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_GETADJACENTTEXT)] BSTR getAdjacentText([in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_REPLACEADJACENTTEXT)] BSTR replaceAdjacentText([in] BSTR where,[in] BSTR newText);
    [propget, id(DISPID_IHTMLELEMENT2_CANHAVECHILDREN)] VARIANT_BOOL canHaveChildren();
    [id(DISPID_IHTMLELEMENT2_ADDBEHAVIOR)] long addBehavior([in] BSTR bstrUrl,[optional, in] VARIANT* pvarFactory);
    [id(DISPID_IHTMLELEMENT2_REMOVEBEHAVIOR)] VARIANT_BOOL removeBehavior([in] long cookie);
    [propget, id(DISPID_IHTMLELEMENT2_RUNTIMESTYLE), nonbrowsable] IHTMLStyle* runtimeStyle();
    [propget, id(DISPID_IHTMLELEMENT2_BEHAVIORURNS)] IDispatch* behaviorUrns();
    [propput, id(DISPID_IHTMLELEMENT2_TAGURN)] void tagUrn(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_TAGURN)] BSTR tagUrn();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] void onbeforeeditfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] VARIANT onbeforeeditfocus();
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATEVALUE), hidden, restricted] long readyStateValue();
    [id(DISPID_IHTMLELEMENT2_GETELEMENTSBYTAGNAME)] IHTMLElementCollection* getElementsByTagName([in] BSTR v);
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUENUMBER), hidden] long uniqueNumber();
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUEID), hidden] BSTR uniqueID();
    [propget, id(DISPID_IHTMLDOMNODE_NODETYPE)] long nodeType();
    [propget, id(DISPID_IHTMLDOMNODE_PARENTNODE)] IHTMLDOMNode* parentNode();
    [id(DISPID_IHTMLDOMNODE_HASCHILDNODES)] VARIANT_BOOL hasChildNodes();
    [propget, id(DISPID_IHTMLDOMNODE_CHILDNODES)] IDispatch* childNodes();
    [propget, id(DISPID_IHTMLDOMNODE_ATTRIBUTES)] IDispatch* attributes();
    [id(DISPID_IHTMLDOMNODE_INSERTBEFORE)] IHTMLDOMNode* insertBefore([in] IHTMLDOMNode* newChild,[optional, in] VARIANT refChild);
    [id(DISPID_IHTMLDOMNODE_REMOVECHILD)] IHTMLDOMNode* removeChild([in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_REPLACECHILD)] IHTMLDOMNode* replaceChild([in] IHTMLDOMNode* newChild,[in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_CLONENODE)] IHTMLDOMNode* cloneNode([in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_REMOVENODE)] IHTMLDOMNode* removeNode([defaultvalue(0), in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_SWAPNODE)] IHTMLDOMNode* swapNode([in] IHTMLDOMNode* otherNode);
    [id(DISPID_IHTMLDOMNODE_REPLACENODE)] IHTMLDOMNode* replaceNode([in] IHTMLDOMNode* replacement);
    [id(DISPID_IHTMLDOMNODE_APPENDCHILD)] IHTMLDOMNode* appendChild([in] IHTMLDOMNode* newChild);
    [propget, id(DISPID_IHTMLDOMNODE_NODENAME)] BSTR nodeName();
    [propput, id(DISPID_IHTMLDOMNODE_NODEVALUE)] void nodeValue(VARIANT v);
    [propget, id(DISPID_IHTMLDOMNODE_NODEVALUE)] VARIANT nodeValue();
    [propget, id(DISPID_IHTMLDOMNODE_FIRSTCHILD)] IHTMLDOMNode* firstChild();
    [propget, id(DISPID_IHTMLDOMNODE_LASTCHILD)] IHTMLDOMNode* lastChild();
    [propget, id(DISPID_IHTMLDOMNODE_PREVIOUSSIBLING)] IHTMLDOMNode* previousSibling();
    [propget, id(DISPID_IHTMLDOMNODE_NEXTSIBLING)] IHTMLDOMNode* nextSibling();
    [propput, id(DISPID_IHTMLDATABINDING_DATAFLD)] void dataFld(BSTR v);
    [propget, id(DISPID_IHTMLDATABINDING_DATAFLD)] BSTR dataFld();
    [propput, id(DISPID_IHTMLDATABINDING_DATASRC)] void dataSrc(BSTR v);
    [propget, id(DISPID_IHTMLDATABINDING_DATASRC)] BSTR dataSrc();
    [propput, id(DISPID_IHTMLDATABINDING_DATAFORMATAS)] void dataFormatAs(BSTR v);
    [propget, id(DISPID_IHTMLDATABINDING_DATAFORMATAS)] BSTR dataFormatAs();
    [propput, id(DISPID_IHTMLFRAMEBASE_SRC)] void src(BSTR v);
    [propget, id(DISPID_IHTMLFRAMEBASE_SRC)] BSTR src();
    [propput, id(DISPID_IHTMLFRAMEBASE_NAME)] void name(BSTR v);
    [propget, id(DISPID_IHTMLFRAMEBASE_NAME)] BSTR name();
    [propput, id(DISPID_IHTMLFRAMEBASE_BORDER)] void border(VARIANT v);
    [propget, id(DISPID_IHTMLFRAMEBASE_BORDER)] VARIANT border();
    [propput, id(DISPID_IHTMLFRAMEBASE_FRAMEBORDER)] void frameBorder(BSTR v);
    [propget, id(DISPID_IHTMLFRAMEBASE_FRAMEBORDER)] BSTR frameBorder();
    [propput, id(DISPID_IHTMLFRAMEBASE_FRAMESPACING)] void frameSpacing(VARIANT v);
    [propget, id(DISPID_IHTMLFRAMEBASE_FRAMESPACING)] VARIANT frameSpacing();
    [propput, id(DISPID_IHTMLFRAMEBASE_MARGINWIDTH)] void marginWidth(VARIANT v);
    [propget, id(DISPID_IHTMLFRAMEBASE_MARGINWIDTH)] VARIANT marginWidth();
    [propput, id(DISPID_IHTMLFRAMEBASE_MARGINHEIGHT)] void marginHeight(VARIANT v);
    [propget, id(DISPID_IHTMLFRAMEBASE_MARGINHEIGHT)] VARIANT marginHeight();
    [propput, id(DISPID_IHTMLFRAMEBASE_NORESIZE)] void noResize(VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLFRAMEBASE_NORESIZE)] VARIANT_BOOL noResize();
    [propput, id(DISPID_IHTMLFRAMEBASE_SCROLLING)] void scrolling(BSTR v);
    [propget, id(DISPID_IHTMLFRAMEBASE_SCROLLING)] BSTR scrolling();
    [propput, id(DISPID_IHTMLFRAMEELEMENT_BORDERCOLOR)] void borderColor(VARIANT v);
    [propget, id(DISPID_IHTMLFRAMEELEMENT_BORDERCOLOR)] VARIANT borderColor();
};
[
    uuid(3050f314-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLFrameElement
{
    [default]           dispinterface DispHTMLFrameElement;
    [source, default]   dispinterface HTMLControlElementEvents;
    [source]            dispinterface HTMLControlElementEvents2;
                        interface IHTMLElement;
                        interface IHTMLElement2;
                        interface IHTMLUniqueName;
                        interface IHTMLDOMNode;
                        interface IHTMLDatabinding;
                        interface IHTMLControlElement;
                        interface IHTMLFrameBase;
                        interface IHTMLFrameElement;
};
cpp_quote("EXTERN_C const GUID CLSID_CFrameElement;")
[
    odl,
    oleautomation,
    dual,
    uuid(3050f315-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLIFrameElement : IDispatch
{
    [propput, id(DISPID_IHTMLIFRAMEELEMENT_VSPACE)] HRESULT vspace([in] long v);
    [propget, id(DISPID_IHTMLIFRAMEELEMENT_VSPACE)] HRESULT vspace([retval, out] long * p);
    [propput, id(DISPID_IHTMLIFRAMEELEMENT_HSPACE)] HRESULT hspace([in] long v);
    [propget, id(DISPID_IHTMLIFRAMEELEMENT_HSPACE)] HRESULT hspace([retval, out] long * p);
    [propput, id(DISPID_IHTMLIFRAMEELEMENT_ALIGN), displaybind, bindable] HRESULT align([in] BSTR v);
    [propget, id(DISPID_IHTMLIFRAMEELEMENT_ALIGN), displaybind, bindable] HRESULT align([retval, out] BSTR * p);
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f4e6-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLIFrameElement2 : IDispatch
{
    [propput, id(DISPID_IHTMLIFRAMEELEMENT2_HEIGHT)] HRESULT height([in] VARIANT v);
    [propget, id(DISPID_IHTMLIFRAMEELEMENT2_HEIGHT)] HRESULT height([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLIFRAMEELEMENT2_WIDTH)] HRESULT width([in] VARIANT v);
    [propget, id(DISPID_IHTMLIFRAMEELEMENT2_WIDTH)] HRESULT width([retval, out] VARIANT * p);
};
[
    hidden,
    uuid(3050f51b-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTMLIFrame
{
properties:
methods:
    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)] void setAttribute([in] BSTR strAttributeName,[in] VARIANT AttributeValue,[defaultvalue(1), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)] VARIANT getAttribute([in] BSTR strAttributeName,[defaultvalue(0), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)] VARIANT_BOOL removeAttribute([in] BSTR strAttributeName,[defaultvalue(1), in] LONG lFlags);
    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] void className(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] BSTR className();
    [propput, id(DISPID_IHTMLELEMENT_ID), bindable] void id(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_ID), bindable] BSTR id();
    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)] BSTR tagName();
    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)] IHTMLElement* parentElement();
    [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable] IHTMLStyle* style();
    [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] void onhelp(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] VARIANT onhelp();
    [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] void onclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] VARIANT onclick();
    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] void ondblclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] VARIANT ondblclick();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] void onkeydown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] VARIANT onkeydown();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] void onkeyup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] VARIANT onkeyup();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] void onkeypress(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] VARIANT onkeypress();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] void onmouseout(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] VARIANT onmouseout();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] void onmouseover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] VARIANT onmouseover();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] void onmousemove(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] VARIANT onmousemove();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] void onmousedown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] VARIANT onmousedown();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] void onmouseup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] VARIANT onmouseup();
    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)] IDispatch* document();
    [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] void title(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] BSTR title();
    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] void language(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] BSTR language();
    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] void onselectstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] VARIANT onselectstart();
    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)] void scrollIntoView([optional, in] VARIANT varargStart);
    [id(DISPID_IHTMLELEMENT_CONTAINS)] VARIANT_BOOL contains([in] IHTMLElement* pChild);
    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable] long sourceIndex();
    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)] VARIANT recordNumber();
    [propput, id(DISPID_IHTMLELEMENT_LANG)] void lang(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANG)] BSTR lang();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)] long offsetLeft();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)] long offsetTop();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)] long offsetWidth();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)] long offsetHeight();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)] IHTMLElement* offsetParent();
    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)] void innerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)] BSTR innerHTML();
    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)] void innerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)] BSTR innerText();
    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)] void outerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)] BSTR outerHTML();
    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)] void outerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)] BSTR outerText();
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)] void insertAdjacentHTML([in] BSTR where,[in] BSTR html);
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)] void insertAdjacentText([in] BSTR where,[in] BSTR text);
    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)] IHTMLElement* parentTextEdit();
    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)] VARIANT_BOOL isTextEdit();
    [id(DISPID_IHTMLELEMENT_CLICK)] void click();
    [propget, id(DISPID_IHTMLELEMENT_FILTERS)] IHTMLFiltersCollection* filters();
    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] void ondragstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] VARIANT ondragstart();
    [id(DISPID_IHTMLELEMENT_TOSTRING)] BSTR toString();
    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] void onbeforeupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] VARIANT onbeforeupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] void onafterupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] VARIANT onafterupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] void onerrorupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] VARIANT onerrorupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] void onrowexit(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] VARIANT onrowexit();
    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] void onrowenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] VARIANT onrowenter();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] void ondatasetchanged(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] VARIANT ondatasetchanged();
    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] void ondataavailable(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] VARIANT ondataavailable();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] void ondatasetcomplete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] VARIANT ondatasetcomplete();
    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] void onfilterchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] VARIANT onfilterchange();
    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)] IDispatch* children();
    [propget, id(DISPID_IHTMLELEMENT_ALL)] IDispatch* all();
    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)] BSTR scopeName();
    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)] void setCapture([defaultvalue(-1), in] VARIANT_BOOL containerCapture);
    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)] void releaseCapture();
    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] void onlosecapture(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] VARIANT onlosecapture();
    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)] BSTR componentFromPoint([in] long x,[in] long y);
    [id(DISPID_IHTMLELEMENT2_DOSCROLL)] void doScroll([optional, in] VARIANT component);
    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] void onscroll(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] VARIANT onscroll();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] void ondrag(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] VARIANT ondrag();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] void ondragend(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] VARIANT ondragend();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] void ondragenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] VARIANT ondragenter();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] void ondragover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] VARIANT ondragover();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] void ondragleave(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] VARIANT ondragleave();
    [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] void ondrop(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] VARIANT ondrop();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] void onbeforecut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] VARIANT onbeforecut();
    [propput, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] void oncut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] VARIANT oncut();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] void onbeforecopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] VARIANT onbeforecopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] void oncopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] VARIANT oncopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] void onbeforepaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] VARIANT onbeforepaste();
    [propput, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] void onpaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] VARIANT onpaste();
    [propget, id(DISPID_IHTMLELEMENT2_CURRENTSTYLE), nonbrowsable] IHTMLCurrentStyle* currentStyle();
    [propput, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] void onpropertychange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] VARIANT onpropertychange();
    [id(DISPID_IHTMLELEMENT2_GETCLIENTRECTS)] IHTMLRectCollection* getClientRects();
    [id(DISPID_IHTMLELEMENT2_GETBOUNDINGCLIENTRECT)] IHTMLRect* getBoundingClientRect();
    [id(DISPID_IHTMLELEMENT2_SETEXPRESSION)] void setExpression([in] BSTR propname,[in] BSTR expression,[defaultvalue(""), in] BSTR language);
    [id(DISPID_IHTMLELEMENT2_GETEXPRESSION)] VARIANT getExpression([in] BSTR propname);
    [id(DISPID_IHTMLELEMENT2_REMOVEEXPRESSION)] VARIANT_BOOL removeExpression([in] BSTR propname);
    [propput, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] void tabIndex(short v);
    [propget, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] short tabIndex();
    [id(DISPID_IHTMLELEMENT2_FOCUS)] void focus();
    [propput, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] void accessKey(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] BSTR accessKey();
    [propput, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] void onblur(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] VARIANT onblur();
    [propput, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] void onfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] VARIANT onfocus();
    [propput, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] void onresize(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] VARIANT onresize();
    [id(DISPID_IHTMLELEMENT2_BLUR)] void blur();
    [id(DISPID_IHTMLELEMENT2_ADDFILTER)] void addFilter([in] IUnknown* pUnk);
    [id(DISPID_IHTMLELEMENT2_REMOVEFILTER)] void removeFilter([in] IUnknown* pUnk);
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTHEIGHT), displaybind, bindable] long clientHeight();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTWIDTH), displaybind, bindable] long clientWidth();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTTOP), displaybind, bindable] long clientTop();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTLEFT), displaybind, bindable] long clientLeft();
    [id(DISPID_IHTMLELEMENT2_ATTACHEVENT)] VARIANT_BOOL attachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [id(DISPID_IHTMLELEMENT2_DETACHEVENT)] void detachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATE)] VARIANT readyState();
    [propput, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] void onreadystatechange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] VARIANT onreadystatechange();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] void onrowsdelete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] VARIANT onrowsdelete();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] void onrowsinserted(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] VARIANT onrowsinserted();
    [propput, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] void oncellchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] VARIANT oncellchange();
    [propput, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] void dir(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] BSTR dir();
    [id(DISPID_IHTMLELEMENT2_CREATECONTROLRANGE)] IDispatch* createControlRange();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLHEIGHT), displaybind, bindable] long scrollHeight();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLWIDTH), displaybind, bindable] long scrollWidth();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] void scrollTop(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] long scrollTop();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] void scrollLeft(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] long scrollLeft();
    [id(DISPID_IHTMLELEMENT2_CLEARATTRIBUTES)] void clearAttributes();
    [id(DISPID_IHTMLELEMENT2_MERGEATTRIBUTES)] void mergeAttributes([in] IHTMLElement* mergeThis);
    [propput, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] void oncontextmenu(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] VARIANT oncontextmenu();
    [id(DISPID_IHTMLELEMENT2_INSERTADJACENTELEMENT)] IHTMLElement* insertAdjacentElement([in] BSTR where,[in] IHTMLElement* insertedElement);
    [id(DISPID_IHTMLELEMENT2_APPLYELEMENT)] IHTMLElement* applyElement([in] IHTMLElement* apply,[in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_GETADJACENTTEXT)] BSTR getAdjacentText([in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_REPLACEADJACENTTEXT)] BSTR replaceAdjacentText([in] BSTR where,[in] BSTR newText);
    [propget, id(DISPID_IHTMLELEMENT2_CANHAVECHILDREN)] VARIANT_BOOL canHaveChildren();
    [id(DISPID_IHTMLELEMENT2_ADDBEHAVIOR)] long addBehavior([in] BSTR bstrUrl,[optional, in] VARIANT* pvarFactory);
    [id(DISPID_IHTMLELEMENT2_REMOVEBEHAVIOR)] VARIANT_BOOL removeBehavior([in] long cookie);
    [propget, id(DISPID_IHTMLELEMENT2_RUNTIMESTYLE), nonbrowsable] IHTMLStyle* runtimeStyle();
    [propget, id(DISPID_IHTMLELEMENT2_BEHAVIORURNS)] IDispatch* behaviorUrns();
    [propput, id(DISPID_IHTMLELEMENT2_TAGURN)] void tagUrn(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_TAGURN)] BSTR tagUrn();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] void onbeforeeditfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] VARIANT onbeforeeditfocus();
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATEVALUE), hidden, restricted] long readyStateValue();
    [id(DISPID_IHTMLELEMENT2_GETELEMENTSBYTAGNAME)] IHTMLElementCollection* getElementsByTagName([in] BSTR v);
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUENUMBER), hidden] long uniqueNumber();
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUEID), hidden] BSTR uniqueID();
    [propget, id(DISPID_IHTMLDOMNODE_NODETYPE)] long nodeType();
    [propget, id(DISPID_IHTMLDOMNODE_PARENTNODE)] IHTMLDOMNode* parentNode();
    [id(DISPID_IHTMLDOMNODE_HASCHILDNODES)] VARIANT_BOOL hasChildNodes();
    [propget, id(DISPID_IHTMLDOMNODE_CHILDNODES)] IDispatch* childNodes();
    [propget, id(DISPID_IHTMLDOMNODE_ATTRIBUTES)] IDispatch* attributes();
    [id(DISPID_IHTMLDOMNODE_INSERTBEFORE)] IHTMLDOMNode* insertBefore([in] IHTMLDOMNode* newChild,[optional, in] VARIANT refChild);
    [id(DISPID_IHTMLDOMNODE_REMOVECHILD)] IHTMLDOMNode* removeChild([in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_REPLACECHILD)] IHTMLDOMNode* replaceChild([in] IHTMLDOMNode* newChild,[in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_CLONENODE)] IHTMLDOMNode* cloneNode([in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_REMOVENODE)] IHTMLDOMNode* removeNode([defaultvalue(0), in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_SWAPNODE)] IHTMLDOMNode* swapNode([in] IHTMLDOMNode* otherNode);
    [id(DISPID_IHTMLDOMNODE_REPLACENODE)] IHTMLDOMNode* replaceNode([in] IHTMLDOMNode* replacement);
    [id(DISPID_IHTMLDOMNODE_APPENDCHILD)] IHTMLDOMNode* appendChild([in] IHTMLDOMNode* newChild);
    [propget, id(DISPID_IHTMLDOMNODE_NODENAME)] BSTR nodeName();
    [propput, id(DISPID_IHTMLDOMNODE_NODEVALUE)] void nodeValue(VARIANT v);
    [propget, id(DISPID_IHTMLDOMNODE_NODEVALUE)] VARIANT nodeValue();
    [propget, id(DISPID_IHTMLDOMNODE_FIRSTCHILD)] IHTMLDOMNode* firstChild();
    [propget, id(DISPID_IHTMLDOMNODE_LASTCHILD)] IHTMLDOMNode* lastChild();
    [propget, id(DISPID_IHTMLDOMNODE_PREVIOUSSIBLING)] IHTMLDOMNode* previousSibling();
    [propget, id(DISPID_IHTMLDOMNODE_NEXTSIBLING)] IHTMLDOMNode* nextSibling();
    [propput, id(DISPID_IHTMLDATABINDING_DATAFLD)] void dataFld(BSTR v);
    [propget, id(DISPID_IHTMLDATABINDING_DATAFLD)] BSTR dataFld();
    [propput, id(DISPID_IHTMLDATABINDING_DATASRC)] void dataSrc(BSTR v);
    [propget, id(DISPID_IHTMLDATABINDING_DATASRC)] BSTR dataSrc();
    [propput, id(DISPID_IHTMLDATABINDING_DATAFORMATAS)] void dataFormatAs(BSTR v);
    [propget, id(DISPID_IHTMLDATABINDING_DATAFORMATAS)] BSTR dataFormatAs();
    [propput, id(DISPID_IHTMLFRAMEBASE_SRC)] void src(BSTR v);
    [propget, id(DISPID_IHTMLFRAMEBASE_SRC)] BSTR src();
    [propput, id(DISPID_IHTMLFRAMEBASE_NAME)] void name(BSTR v);
    [propget, id(DISPID_IHTMLFRAMEBASE_NAME)] BSTR name();
    [propput, id(DISPID_IHTMLFRAMEBASE_BORDER)] void border(VARIANT v);
    [propget, id(DISPID_IHTMLFRAMEBASE_BORDER)] VARIANT border();
    [propput, id(DISPID_IHTMLFRAMEBASE_FRAMEBORDER)] void frameBorder(BSTR v);
    [propget, id(DISPID_IHTMLFRAMEBASE_FRAMEBORDER)] BSTR frameBorder();
    [propput, id(DISPID_IHTMLFRAMEBASE_FRAMESPACING)] void frameSpacing(VARIANT v);
    [propget, id(DISPID_IHTMLFRAMEBASE_FRAMESPACING)] VARIANT frameSpacing();
    [propput, id(DISPID_IHTMLFRAMEBASE_MARGINWIDTH)] void marginWidth(VARIANT v);
    [propget, id(DISPID_IHTMLFRAMEBASE_MARGINWIDTH)] VARIANT marginWidth();
    [propput, id(DISPID_IHTMLFRAMEBASE_MARGINHEIGHT)] void marginHeight(VARIANT v);
    [propget, id(DISPID_IHTMLFRAMEBASE_MARGINHEIGHT)] VARIANT marginHeight();
    [propput, id(DISPID_IHTMLFRAMEBASE_NORESIZE)] void noResize(VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLFRAMEBASE_NORESIZE)] VARIANT_BOOL noResize();
    [propput, id(DISPID_IHTMLFRAMEBASE_SCROLLING)] void scrolling(BSTR v);
    [propget, id(DISPID_IHTMLFRAMEBASE_SCROLLING)] BSTR scrolling();
    [propput, id(DISPID_IHTMLIFRAMEELEMENT_VSPACE)] void vspace(long v);
    [propget, id(DISPID_IHTMLIFRAMEELEMENT_VSPACE)] long vspace();
    [propput, id(DISPID_IHTMLIFRAMEELEMENT_HSPACE)] void hspace(long v);
    [propget, id(DISPID_IHTMLIFRAMEELEMENT_HSPACE)] long hspace();
    [propput, id(DISPID_IHTMLIFRAMEELEMENT_ALIGN), displaybind, bindable] void align(BSTR v);
    [propget, id(DISPID_IHTMLIFRAMEELEMENT_ALIGN), displaybind, bindable] BSTR align();
    [propput, id(DISPID_IHTMLIFRAMEELEMENT2_HEIGHT)] void height(VARIANT v);
    [propget, id(DISPID_IHTMLIFRAMEELEMENT2_HEIGHT)] VARIANT height();
    [propput, id(DISPID_IHTMLIFRAMEELEMENT2_WIDTH)] void width(VARIANT v);
    [propget, id(DISPID_IHTMLIFRAMEELEMENT2_WIDTH)] VARIANT width();
};
[
    uuid(3050f316-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLIFrame
{
    [default]           dispinterface DispHTMLIFrame;
    [source, default]   dispinterface HTMLControlElementEvents;
    [source]            dispinterface HTMLControlElementEvents2;
                        interface IHTMLElement;
                        interface IHTMLElement2;
                        interface IHTMLUniqueName;
                        interface IHTMLDOMNode;
                        interface IHTMLDatabinding;
                        interface IHTMLControlElement;
                        interface IHTMLFrameBase;
                        interface IHTMLIFrameElement;
                        interface IHTMLIFrameElement2;
};
cpp_quote("EXTERN_C const GUID CLSID_CIFrameElement;")
[
    odl,
    oleautomation,
    dual,
    uuid(3050f212-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLDivPosition : IDispatch
{
    [propput, id(DISPID_IHTMLDIVPOSITION_ALIGN), displaybind, bindable] HRESULT align([in] BSTR v);
    [propget, id(DISPID_IHTMLDIVPOSITION_ALIGN), displaybind, bindable] HRESULT align([retval, out] BSTR * p);
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f3e7-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLFieldSetElement : IDispatch
{
    [propput, id(DISPID_IHTMLFIELDSETELEMENT_ALIGN), displaybind, bindable] HRESULT align([in] BSTR v);
    [propget, id(DISPID_IHTMLFIELDSETELEMENT_ALIGN), displaybind, bindable] HRESULT align([retval, out] BSTR * p);
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f3ea-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLLegendElement : IDispatch
{
    [propput, id(DISPID_IHTMLLEGENDELEMENT_ALIGN)] HRESULT align([in] BSTR v);
    [propget, id(DISPID_IHTMLLEGENDELEMENT_ALIGN)] HRESULT align([retval, out] BSTR * p);
};
[
    hidden,
    uuid(3050f50f-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTMLDivPosition
{
properties:
methods:
    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)] void setAttribute([in] BSTR strAttributeName,[in] VARIANT AttributeValue,[defaultvalue(1), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)] VARIANT getAttribute([in] BSTR strAttributeName,[defaultvalue(0), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)] VARIANT_BOOL removeAttribute([in] BSTR strAttributeName,[defaultvalue(1), in] LONG lFlags);
    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] void className(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] BSTR className();
    [propput, id(DISPID_IHTMLELEMENT_ID), bindable] void id(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_ID), bindable] BSTR id();
    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)] BSTR tagName();
    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)] IHTMLElement* parentElement();
    [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable] IHTMLStyle* style();
    [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] void onhelp(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] VARIANT onhelp();
    [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] void onclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] VARIANT onclick();
    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] void ondblclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] VARIANT ondblclick();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] void onkeydown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] VARIANT onkeydown();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] void onkeyup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] VARIANT onkeyup();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] void onkeypress(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] VARIANT onkeypress();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] void onmouseout(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] VARIANT onmouseout();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] void onmouseover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] VARIANT onmouseover();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] void onmousemove(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] VARIANT onmousemove();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] void onmousedown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] VARIANT onmousedown();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] void onmouseup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] VARIANT onmouseup();
    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)] IDispatch* document();
    [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] void title(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] BSTR title();
    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] void language(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] BSTR language();
    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] void onselectstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] VARIANT onselectstart();
    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)] void scrollIntoView([optional, in] VARIANT varargStart);
    [id(DISPID_IHTMLELEMENT_CONTAINS)] VARIANT_BOOL contains([in] IHTMLElement* pChild);
    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable] long sourceIndex();
    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)] VARIANT recordNumber();
    [propput, id(DISPID_IHTMLELEMENT_LANG)] void lang(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANG)] BSTR lang();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)] long offsetLeft();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)] long offsetTop();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)] long offsetWidth();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)] long offsetHeight();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)] IHTMLElement* offsetParent();
    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)] void innerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)] BSTR innerHTML();
    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)] void innerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)] BSTR innerText();
    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)] void outerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)] BSTR outerHTML();
    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)] void outerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)] BSTR outerText();
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)] void insertAdjacentHTML([in] BSTR where,[in] BSTR html);
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)] void insertAdjacentText([in] BSTR where,[in] BSTR text);
    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)] IHTMLElement* parentTextEdit();
    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)] VARIANT_BOOL isTextEdit();
    [id(DISPID_IHTMLELEMENT_CLICK)] void click();
    [propget, id(DISPID_IHTMLELEMENT_FILTERS)] IHTMLFiltersCollection* filters();
    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] void ondragstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] VARIANT ondragstart();
    [id(DISPID_IHTMLELEMENT_TOSTRING)] BSTR toString();
    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] void onbeforeupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] VARIANT onbeforeupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] void onafterupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] VARIANT onafterupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] void onerrorupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] VARIANT onerrorupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] void onrowexit(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] VARIANT onrowexit();
    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] void onrowenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] VARIANT onrowenter();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] void ondatasetchanged(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] VARIANT ondatasetchanged();
    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] void ondataavailable(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] VARIANT ondataavailable();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] void ondatasetcomplete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] VARIANT ondatasetcomplete();
    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] void onfilterchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] VARIANT onfilterchange();
    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)] IDispatch* children();
    [propget, id(DISPID_IHTMLELEMENT_ALL)] IDispatch* all();
    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)] BSTR scopeName();
    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)] void setCapture([defaultvalue(-1), in] VARIANT_BOOL containerCapture);
    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)] void releaseCapture();
    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] void onlosecapture(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] VARIANT onlosecapture();
    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)] BSTR componentFromPoint([in] long x,[in] long y);
    [id(DISPID_IHTMLELEMENT2_DOSCROLL)] void doScroll([optional, in] VARIANT component);
    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] void onscroll(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] VARIANT onscroll();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] void ondrag(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] VARIANT ondrag();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] void ondragend(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] VARIANT ondragend();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] void ondragenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] VARIANT ondragenter();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] void ondragover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] VARIANT ondragover();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] void ondragleave(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] VARIANT ondragleave();
    [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] void ondrop(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] VARIANT ondrop();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] void onbeforecut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] VARIANT onbeforecut();
    [propput, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] void oncut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] VARIANT oncut();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] void onbeforecopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] VARIANT onbeforecopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] void oncopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] VARIANT oncopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] void onbeforepaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] VARIANT onbeforepaste();
    [propput, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] void onpaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] VARIANT onpaste();
    [propget, id(DISPID_IHTMLELEMENT2_CURRENTSTYLE), nonbrowsable] IHTMLCurrentStyle* currentStyle();
    [propput, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] void onpropertychange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] VARIANT onpropertychange();
    [id(DISPID_IHTMLELEMENT2_GETCLIENTRECTS)] IHTMLRectCollection* getClientRects();
    [id(DISPID_IHTMLELEMENT2_GETBOUNDINGCLIENTRECT)] IHTMLRect* getBoundingClientRect();
    [id(DISPID_IHTMLELEMENT2_SETEXPRESSION)] void setExpression([in] BSTR propname,[in] BSTR expression,[defaultvalue(""), in] BSTR language);
    [id(DISPID_IHTMLELEMENT2_GETEXPRESSION)] VARIANT getExpression([in] BSTR propname);
    [id(DISPID_IHTMLELEMENT2_REMOVEEXPRESSION)] VARIANT_BOOL removeExpression([in] BSTR propname);
    [propput, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] void tabIndex(short v);
    [propget, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] short tabIndex();
    [id(DISPID_IHTMLELEMENT2_FOCUS)] void focus();
    [propput, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] void accessKey(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] BSTR accessKey();
    [propput, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] void onblur(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] VARIANT onblur();
    [propput, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] void onfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] VARIANT onfocus();
    [propput, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] void onresize(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] VARIANT onresize();
    [id(DISPID_IHTMLELEMENT2_BLUR)] void blur();
    [id(DISPID_IHTMLELEMENT2_ADDFILTER)] void addFilter([in] IUnknown* pUnk);
    [id(DISPID_IHTMLELEMENT2_REMOVEFILTER)] void removeFilter([in] IUnknown* pUnk);
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTHEIGHT), displaybind, bindable] long clientHeight();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTWIDTH), displaybind, bindable] long clientWidth();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTTOP), displaybind, bindable] long clientTop();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTLEFT), displaybind, bindable] long clientLeft();
    [id(DISPID_IHTMLELEMENT2_ATTACHEVENT)] VARIANT_BOOL attachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [id(DISPID_IHTMLELEMENT2_DETACHEVENT)] void detachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATE)] VARIANT readyState();
    [propput, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] void onreadystatechange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] VARIANT onreadystatechange();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] void onrowsdelete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] VARIANT onrowsdelete();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] void onrowsinserted(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] VARIANT onrowsinserted();
    [propput, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] void oncellchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] VARIANT oncellchange();
    [propput, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] void dir(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] BSTR dir();
    [id(DISPID_IHTMLELEMENT2_CREATECONTROLRANGE)] IDispatch* createControlRange();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLHEIGHT), displaybind, bindable] long scrollHeight();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLWIDTH), displaybind, bindable] long scrollWidth();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] void scrollTop(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] long scrollTop();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] void scrollLeft(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] long scrollLeft();
    [id(DISPID_IHTMLELEMENT2_CLEARATTRIBUTES)] void clearAttributes();
    [id(DISPID_IHTMLELEMENT2_MERGEATTRIBUTES)] void mergeAttributes([in] IHTMLElement* mergeThis);
    [propput, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] void oncontextmenu(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] VARIANT oncontextmenu();
    [id(DISPID_IHTMLELEMENT2_INSERTADJACENTELEMENT)] IHTMLElement* insertAdjacentElement([in] BSTR where,[in] IHTMLElement* insertedElement);
    [id(DISPID_IHTMLELEMENT2_APPLYELEMENT)] IHTMLElement* applyElement([in] IHTMLElement* apply,[in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_GETADJACENTTEXT)] BSTR getAdjacentText([in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_REPLACEADJACENTTEXT)] BSTR replaceAdjacentText([in] BSTR where,[in] BSTR newText);
    [propget, id(DISPID_IHTMLELEMENT2_CANHAVECHILDREN)] VARIANT_BOOL canHaveChildren();
    [id(DISPID_IHTMLELEMENT2_ADDBEHAVIOR)] long addBehavior([in] BSTR bstrUrl,[optional, in] VARIANT* pvarFactory);
    [id(DISPID_IHTMLELEMENT2_REMOVEBEHAVIOR)] VARIANT_BOOL removeBehavior([in] long cookie);
    [propget, id(DISPID_IHTMLELEMENT2_RUNTIMESTYLE), nonbrowsable] IHTMLStyle* runtimeStyle();
    [propget, id(DISPID_IHTMLELEMENT2_BEHAVIORURNS)] IDispatch* behaviorUrns();
    [propput, id(DISPID_IHTMLELEMENT2_TAGURN)] void tagUrn(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_TAGURN)] BSTR tagUrn();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] void onbeforeeditfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] VARIANT onbeforeeditfocus();
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATEVALUE), hidden, restricted] long readyStateValue();
    [id(DISPID_IHTMLELEMENT2_GETELEMENTSBYTAGNAME)] IHTMLElementCollection* getElementsByTagName([in] BSTR v);
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUENUMBER), hidden] long uniqueNumber();
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUEID), hidden] BSTR uniqueID();
    [propget, id(DISPID_IHTMLDOMNODE_NODETYPE)] long nodeType();
    [propget, id(DISPID_IHTMLDOMNODE_PARENTNODE)] IHTMLDOMNode* parentNode();
    [id(DISPID_IHTMLDOMNODE_HASCHILDNODES)] VARIANT_BOOL hasChildNodes();
    [propget, id(DISPID_IHTMLDOMNODE_CHILDNODES)] IDispatch* childNodes();
    [propget, id(DISPID_IHTMLDOMNODE_ATTRIBUTES)] IDispatch* attributes();
    [id(DISPID_IHTMLDOMNODE_INSERTBEFORE)] IHTMLDOMNode* insertBefore([in] IHTMLDOMNode* newChild,[optional, in] VARIANT refChild);
    [id(DISPID_IHTMLDOMNODE_REMOVECHILD)] IHTMLDOMNode* removeChild([in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_REPLACECHILD)] IHTMLDOMNode* replaceChild([in] IHTMLDOMNode* newChild,[in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_CLONENODE)] IHTMLDOMNode* cloneNode([in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_REMOVENODE)] IHTMLDOMNode* removeNode([defaultvalue(0), in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_SWAPNODE)] IHTMLDOMNode* swapNode([in] IHTMLDOMNode* otherNode);
    [id(DISPID_IHTMLDOMNODE_REPLACENODE)] IHTMLDOMNode* replaceNode([in] IHTMLDOMNode* replacement);
    [id(DISPID_IHTMLDOMNODE_APPENDCHILD)] IHTMLDOMNode* appendChild([in] IHTMLDOMNode* newChild);
    [propget, id(DISPID_IHTMLDOMNODE_NODENAME)] BSTR nodeName();
    [propput, id(DISPID_IHTMLDOMNODE_NODEVALUE)] void nodeValue(VARIANT v);
    [propget, id(DISPID_IHTMLDOMNODE_NODEVALUE)] VARIANT nodeValue();
    [propget, id(DISPID_IHTMLDOMNODE_FIRSTCHILD)] IHTMLDOMNode* firstChild();
    [propget, id(DISPID_IHTMLDOMNODE_LASTCHILD)] IHTMLDOMNode* lastChild();
    [propget, id(DISPID_IHTMLDOMNODE_PREVIOUSSIBLING)] IHTMLDOMNode* previousSibling();
    [propget, id(DISPID_IHTMLDOMNODE_NEXTSIBLING)] IHTMLDOMNode* nextSibling();
    [propput, id(DISPID_IHTMLDATABINDING_DATAFLD)] void dataFld(BSTR v);
    [propget, id(DISPID_IHTMLDATABINDING_DATAFLD)] BSTR dataFld();
    [propput, id(DISPID_IHTMLDATABINDING_DATASRC)] void dataSrc(BSTR v);
    [propget, id(DISPID_IHTMLDATABINDING_DATASRC)] BSTR dataSrc();
    [propput, id(DISPID_IHTMLDATABINDING_DATAFORMATAS)] void dataFormatAs(BSTR v);
    [propget, id(DISPID_IHTMLDATABINDING_DATAFORMATAS)] BSTR dataFormatAs();
    [propput, id(DISPID_IHTMLDIVPOSITION_ALIGN), displaybind, bindable] void align(BSTR v);
    [propget, id(DISPID_IHTMLDIVPOSITION_ALIGN), displaybind, bindable] BSTR align();
};
[
    uuid(3050f249-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLDivPosition
{
    [default]           dispinterface DispHTMLDivPosition;
    [source, default]   dispinterface HTMLTextContainerEvents;
    [source]            dispinterface HTMLTextContainerEvents2;
                        interface IHTMLElement;
                        interface IHTMLElement2;
                        interface IHTMLUniqueName;
                        interface IHTMLDOMNode;
                        interface IHTMLDatabinding;
                        interface IHTMLControlElement;
                        interface IHTMLTextContainer;
                        interface IHTMLDivPosition;
};
cpp_quote("EXTERN_C const GUID CLSID_C1DElement;")
[
    hidden,
    uuid(3050f545-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTMLFieldSetElement
{
properties:
methods:
    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)] void setAttribute([in] BSTR strAttributeName,[in] VARIANT AttributeValue,[defaultvalue(1), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)] VARIANT getAttribute([in] BSTR strAttributeName,[defaultvalue(0), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)] VARIANT_BOOL removeAttribute([in] BSTR strAttributeName,[defaultvalue(1), in] LONG lFlags);
    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] void className(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] BSTR className();
    [propput, id(DISPID_IHTMLELEMENT_ID), bindable] void id(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_ID), bindable] BSTR id();
    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)] BSTR tagName();
    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)] IHTMLElement* parentElement();
    [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable] IHTMLStyle* style();
    [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] void onhelp(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] VARIANT onhelp();
    [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] void onclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] VARIANT onclick();
    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] void ondblclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] VARIANT ondblclick();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] void onkeydown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] VARIANT onkeydown();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] void onkeyup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] VARIANT onkeyup();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] void onkeypress(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] VARIANT onkeypress();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] void onmouseout(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] VARIANT onmouseout();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] void onmouseover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] VARIANT onmouseover();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] void onmousemove(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] VARIANT onmousemove();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] void onmousedown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] VARIANT onmousedown();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] void onmouseup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] VARIANT onmouseup();
    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)] IDispatch* document();
    [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] void title(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] BSTR title();
    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] void language(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] BSTR language();
    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] void onselectstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] VARIANT onselectstart();
    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)] void scrollIntoView([optional, in] VARIANT varargStart);
    [id(DISPID_IHTMLELEMENT_CONTAINS)] VARIANT_BOOL contains([in] IHTMLElement* pChild);
    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable] long sourceIndex();
    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)] VARIANT recordNumber();
    [propput, id(DISPID_IHTMLELEMENT_LANG)] void lang(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANG)] BSTR lang();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)] long offsetLeft();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)] long offsetTop();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)] long offsetWidth();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)] long offsetHeight();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)] IHTMLElement* offsetParent();
    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)] void innerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)] BSTR innerHTML();
    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)] void innerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)] BSTR innerText();
    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)] void outerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)] BSTR outerHTML();
    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)] void outerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)] BSTR outerText();
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)] void insertAdjacentHTML([in] BSTR where,[in] BSTR html);
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)] void insertAdjacentText([in] BSTR where,[in] BSTR text);
    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)] IHTMLElement* parentTextEdit();
    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)] VARIANT_BOOL isTextEdit();
    [id(DISPID_IHTMLELEMENT_CLICK)] void click();
    [propget, id(DISPID_IHTMLELEMENT_FILTERS)] IHTMLFiltersCollection* filters();
    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] void ondragstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] VARIANT ondragstart();
    [id(DISPID_IHTMLELEMENT_TOSTRING)] BSTR toString();
    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] void onbeforeupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] VARIANT onbeforeupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] void onafterupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] VARIANT onafterupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] void onerrorupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] VARIANT onerrorupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] void onrowexit(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] VARIANT onrowexit();
    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] void onrowenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] VARIANT onrowenter();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] void ondatasetchanged(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] VARIANT ondatasetchanged();
    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] void ondataavailable(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] VARIANT ondataavailable();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] void ondatasetcomplete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] VARIANT ondatasetcomplete();
    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] void onfilterchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] VARIANT onfilterchange();
    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)] IDispatch* children();
    [propget, id(DISPID_IHTMLELEMENT_ALL)] IDispatch* all();
    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)] BSTR scopeName();
    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)] void setCapture([defaultvalue(-1), in] VARIANT_BOOL containerCapture);
    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)] void releaseCapture();
    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] void onlosecapture(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] VARIANT onlosecapture();
    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)] BSTR componentFromPoint([in] long x,[in] long y);
    [id(DISPID_IHTMLELEMENT2_DOSCROLL)] void doScroll([optional, in] VARIANT component);
    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] void onscroll(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] VARIANT onscroll();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] void ondrag(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] VARIANT ondrag();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] void ondragend(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] VARIANT ondragend();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] void ondragenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] VARIANT ondragenter();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] void ondragover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] VARIANT ondragover();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] void ondragleave(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] VARIANT ondragleave();
    [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] void ondrop(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] VARIANT ondrop();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] void onbeforecut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] VARIANT onbeforecut();
    [propput, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] void oncut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] VARIANT oncut();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] void onbeforecopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] VARIANT onbeforecopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] void oncopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] VARIANT oncopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] void onbeforepaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] VARIANT onbeforepaste();
    [propput, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] void onpaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] VARIANT onpaste();
    [propget, id(DISPID_IHTMLELEMENT2_CURRENTSTYLE), nonbrowsable] IHTMLCurrentStyle* currentStyle();
    [propput, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] void onpropertychange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] VARIANT onpropertychange();
    [id(DISPID_IHTMLELEMENT2_GETCLIENTRECTS)] IHTMLRectCollection* getClientRects();
    [id(DISPID_IHTMLELEMENT2_GETBOUNDINGCLIENTRECT)] IHTMLRect* getBoundingClientRect();
    [id(DISPID_IHTMLELEMENT2_SETEXPRESSION)] void setExpression([in] BSTR propname,[in] BSTR expression,[defaultvalue(""), in] BSTR language);
    [id(DISPID_IHTMLELEMENT2_GETEXPRESSION)] VARIANT getExpression([in] BSTR propname);
    [id(DISPID_IHTMLELEMENT2_REMOVEEXPRESSION)] VARIANT_BOOL removeExpression([in] BSTR propname);
    [propput, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] void tabIndex(short v);
    [propget, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] short tabIndex();
    [id(DISPID_IHTMLELEMENT2_FOCUS)] void focus();
    [propput, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] void accessKey(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] BSTR accessKey();
    [propput, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] void onblur(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] VARIANT onblur();
    [propput, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] void onfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] VARIANT onfocus();
    [propput, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] void onresize(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] VARIANT onresize();
    [id(DISPID_IHTMLELEMENT2_BLUR)] void blur();
    [id(DISPID_IHTMLELEMENT2_ADDFILTER)] void addFilter([in] IUnknown* pUnk);
    [id(DISPID_IHTMLELEMENT2_REMOVEFILTER)] void removeFilter([in] IUnknown* pUnk);
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTHEIGHT), displaybind, bindable] long clientHeight();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTWIDTH), displaybind, bindable] long clientWidth();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTTOP), displaybind, bindable] long clientTop();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTLEFT), displaybind, bindable] long clientLeft();
    [id(DISPID_IHTMLELEMENT2_ATTACHEVENT)] VARIANT_BOOL attachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [id(DISPID_IHTMLELEMENT2_DETACHEVENT)] void detachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATE)] VARIANT readyState();
    [propput, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] void onreadystatechange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] VARIANT onreadystatechange();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] void onrowsdelete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] VARIANT onrowsdelete();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] void onrowsinserted(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] VARIANT onrowsinserted();
    [propput, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] void oncellchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] VARIANT oncellchange();
    [propput, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] void dir(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] BSTR dir();
    [id(DISPID_IHTMLELEMENT2_CREATECONTROLRANGE)] IDispatch* createControlRange();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLHEIGHT), displaybind, bindable] long scrollHeight();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLWIDTH), displaybind, bindable] long scrollWidth();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] void scrollTop(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] long scrollTop();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] void scrollLeft(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] long scrollLeft();
    [id(DISPID_IHTMLELEMENT2_CLEARATTRIBUTES)] void clearAttributes();
    [id(DISPID_IHTMLELEMENT2_MERGEATTRIBUTES)] void mergeAttributes([in] IHTMLElement* mergeThis);
    [propput, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] void oncontextmenu(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] VARIANT oncontextmenu();
    [id(DISPID_IHTMLELEMENT2_INSERTADJACENTELEMENT)] IHTMLElement* insertAdjacentElement([in] BSTR where,[in] IHTMLElement* insertedElement);
    [id(DISPID_IHTMLELEMENT2_APPLYELEMENT)] IHTMLElement* applyElement([in] IHTMLElement* apply,[in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_GETADJACENTTEXT)] BSTR getAdjacentText([in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_REPLACEADJACENTTEXT)] BSTR replaceAdjacentText([in] BSTR where,[in] BSTR newText);
    [propget, id(DISPID_IHTMLELEMENT2_CANHAVECHILDREN)] VARIANT_BOOL canHaveChildren();
    [id(DISPID_IHTMLELEMENT2_ADDBEHAVIOR)] long addBehavior([in] BSTR bstrUrl,[optional, in] VARIANT* pvarFactory);
    [id(DISPID_IHTMLELEMENT2_REMOVEBEHAVIOR)] VARIANT_BOOL removeBehavior([in] long cookie);
    [propget, id(DISPID_IHTMLELEMENT2_RUNTIMESTYLE), nonbrowsable] IHTMLStyle* runtimeStyle();
    [propget, id(DISPID_IHTMLELEMENT2_BEHAVIORURNS)] IDispatch* behaviorUrns();
    [propput, id(DISPID_IHTMLELEMENT2_TAGURN)] void tagUrn(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_TAGURN)] BSTR tagUrn();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] void onbeforeeditfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] VARIANT onbeforeeditfocus();
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATEVALUE), hidden, restricted] long readyStateValue();
    [id(DISPID_IHTMLELEMENT2_GETELEMENTSBYTAGNAME)] IHTMLElementCollection* getElementsByTagName([in] BSTR v);
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUENUMBER), hidden] long uniqueNumber();
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUEID), hidden] BSTR uniqueID();
    [propget, id(DISPID_IHTMLDOMNODE_NODETYPE)] long nodeType();
    [propget, id(DISPID_IHTMLDOMNODE_PARENTNODE)] IHTMLDOMNode* parentNode();
    [id(DISPID_IHTMLDOMNODE_HASCHILDNODES)] VARIANT_BOOL hasChildNodes();
    [propget, id(DISPID_IHTMLDOMNODE_CHILDNODES)] IDispatch* childNodes();
    [propget, id(DISPID_IHTMLDOMNODE_ATTRIBUTES)] IDispatch* attributes();
    [id(DISPID_IHTMLDOMNODE_INSERTBEFORE)] IHTMLDOMNode* insertBefore([in] IHTMLDOMNode* newChild,[optional, in] VARIANT refChild);
    [id(DISPID_IHTMLDOMNODE_REMOVECHILD)] IHTMLDOMNode* removeChild([in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_REPLACECHILD)] IHTMLDOMNode* replaceChild([in] IHTMLDOMNode* newChild,[in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_CLONENODE)] IHTMLDOMNode* cloneNode([in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_REMOVENODE)] IHTMLDOMNode* removeNode([defaultvalue(0), in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_SWAPNODE)] IHTMLDOMNode* swapNode([in] IHTMLDOMNode* otherNode);
    [id(DISPID_IHTMLDOMNODE_REPLACENODE)] IHTMLDOMNode* replaceNode([in] IHTMLDOMNode* replacement);
    [id(DISPID_IHTMLDOMNODE_APPENDCHILD)] IHTMLDOMNode* appendChild([in] IHTMLDOMNode* newChild);
    [propget, id(DISPID_IHTMLDOMNODE_NODENAME)] BSTR nodeName();
    [propput, id(DISPID_IHTMLDOMNODE_NODEVALUE)] void nodeValue(VARIANT v);
    [propget, id(DISPID_IHTMLDOMNODE_NODEVALUE)] VARIANT nodeValue();
    [propget, id(DISPID_IHTMLDOMNODE_FIRSTCHILD)] IHTMLDOMNode* firstChild();
    [propget, id(DISPID_IHTMLDOMNODE_LASTCHILD)] IHTMLDOMNode* lastChild();
    [propget, id(DISPID_IHTMLDOMNODE_PREVIOUSSIBLING)] IHTMLDOMNode* previousSibling();
    [propget, id(DISPID_IHTMLDOMNODE_NEXTSIBLING)] IHTMLDOMNode* nextSibling();
    [propput, id(DISPID_IHTMLFIELDSETELEMENT_ALIGN), displaybind, bindable] void align(BSTR v);
    [propget, id(DISPID_IHTMLFIELDSETELEMENT_ALIGN), displaybind, bindable] BSTR align();
};
[
    uuid(3050f3e8-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLFieldSetElement
{
    [default]           dispinterface DispHTMLFieldSetElement;
    [source, default]   dispinterface HTMLTextContainerEvents;
    [source]            dispinterface HTMLTextContainerEvents2;
                        interface IHTMLElement;
                        interface IHTMLElement2;
                        interface IHTMLUniqueName;
                        interface IHTMLDOMNode;
                        interface IHTMLControlElement;
                        interface IHTMLTextContainer;
                        interface IHTMLFieldSetElement;
};
cpp_quote("EXTERN_C const GUID CLSID_CFieldSetElement;")
[
    hidden,
    uuid(3050f546-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTMLLegendElement
{
properties:
methods:
    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)] void setAttribute([in] BSTR strAttributeName,[in] VARIANT AttributeValue,[defaultvalue(1), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)] VARIANT getAttribute([in] BSTR strAttributeName,[defaultvalue(0), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)] VARIANT_BOOL removeAttribute([in] BSTR strAttributeName,[defaultvalue(1), in] LONG lFlags);
    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] void className(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] BSTR className();
    [propput, id(DISPID_IHTMLELEMENT_ID), bindable] void id(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_ID), bindable] BSTR id();
    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)] BSTR tagName();
    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)] IHTMLElement* parentElement();
    [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable] IHTMLStyle* style();
    [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] void onhelp(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] VARIANT onhelp();
    [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] void onclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] VARIANT onclick();
    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] void ondblclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] VARIANT ondblclick();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] void onkeydown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] VARIANT onkeydown();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] void onkeyup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] VARIANT onkeyup();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] void onkeypress(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] VARIANT onkeypress();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] void onmouseout(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] VARIANT onmouseout();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] void onmouseover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] VARIANT onmouseover();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] void onmousemove(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] VARIANT onmousemove();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] void onmousedown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] VARIANT onmousedown();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] void onmouseup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] VARIANT onmouseup();
    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)] IDispatch* document();
    [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] void title(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] BSTR title();
    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] void language(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] BSTR language();
    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] void onselectstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] VARIANT onselectstart();
    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)] void scrollIntoView([optional, in] VARIANT varargStart);
    [id(DISPID_IHTMLELEMENT_CONTAINS)] VARIANT_BOOL contains([in] IHTMLElement* pChild);
    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable] long sourceIndex();
    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)] VARIANT recordNumber();
    [propput, id(DISPID_IHTMLELEMENT_LANG)] void lang(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANG)] BSTR lang();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)] long offsetLeft();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)] long offsetTop();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)] long offsetWidth();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)] long offsetHeight();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)] IHTMLElement* offsetParent();
    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)] void innerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)] BSTR innerHTML();
    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)] void innerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)] BSTR innerText();
    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)] void outerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)] BSTR outerHTML();
    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)] void outerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)] BSTR outerText();
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)] void insertAdjacentHTML([in] BSTR where,[in] BSTR html);
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)] void insertAdjacentText([in] BSTR where,[in] BSTR text);
    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)] IHTMLElement* parentTextEdit();
    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)] VARIANT_BOOL isTextEdit();
    [id(DISPID_IHTMLELEMENT_CLICK)] void click();
    [propget, id(DISPID_IHTMLELEMENT_FILTERS)] IHTMLFiltersCollection* filters();
    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] void ondragstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] VARIANT ondragstart();
    [id(DISPID_IHTMLELEMENT_TOSTRING)] BSTR toString();
    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] void onbeforeupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] VARIANT onbeforeupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] void onafterupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] VARIANT onafterupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] void onerrorupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] VARIANT onerrorupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] void onrowexit(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] VARIANT onrowexit();
    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] void onrowenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] VARIANT onrowenter();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] void ondatasetchanged(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] VARIANT ondatasetchanged();
    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] void ondataavailable(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] VARIANT ondataavailable();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] void ondatasetcomplete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] VARIANT ondatasetcomplete();
    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] void onfilterchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] VARIANT onfilterchange();
    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)] IDispatch* children();
    [propget, id(DISPID_IHTMLELEMENT_ALL)] IDispatch* all();
    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)] BSTR scopeName();
    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)] void setCapture([defaultvalue(-1), in] VARIANT_BOOL containerCapture);
    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)] void releaseCapture();
    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] void onlosecapture(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] VARIANT onlosecapture();
    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)] BSTR componentFromPoint([in] long x,[in] long y);
    [id(DISPID_IHTMLELEMENT2_DOSCROLL)] void doScroll([optional, in] VARIANT component);
    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] void onscroll(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] VARIANT onscroll();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] void ondrag(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] VARIANT ondrag();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] void ondragend(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] VARIANT ondragend();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] void ondragenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] VARIANT ondragenter();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] void ondragover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] VARIANT ondragover();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] void ondragleave(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] VARIANT ondragleave();
    [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] void ondrop(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] VARIANT ondrop();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] void onbeforecut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] VARIANT onbeforecut();
    [propput, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] void oncut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] VARIANT oncut();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] void onbeforecopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] VARIANT onbeforecopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] void oncopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] VARIANT oncopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] void onbeforepaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] VARIANT onbeforepaste();
    [propput, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] void onpaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] VARIANT onpaste();
    [propget, id(DISPID_IHTMLELEMENT2_CURRENTSTYLE), nonbrowsable] IHTMLCurrentStyle* currentStyle();
    [propput, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] void onpropertychange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] VARIANT onpropertychange();
    [id(DISPID_IHTMLELEMENT2_GETCLIENTRECTS)] IHTMLRectCollection* getClientRects();
    [id(DISPID_IHTMLELEMENT2_GETBOUNDINGCLIENTRECT)] IHTMLRect* getBoundingClientRect();
    [id(DISPID_IHTMLELEMENT2_SETEXPRESSION)] void setExpression([in] BSTR propname,[in] BSTR expression,[defaultvalue(""), in] BSTR language);
    [id(DISPID_IHTMLELEMENT2_GETEXPRESSION)] VARIANT getExpression([in] BSTR propname);
    [id(DISPID_IHTMLELEMENT2_REMOVEEXPRESSION)] VARIANT_BOOL removeExpression([in] BSTR propname);
    [propput, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] void tabIndex(short v);
    [propget, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] short tabIndex();
    [id(DISPID_IHTMLELEMENT2_FOCUS)] void focus();
    [propput, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] void accessKey(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] BSTR accessKey();
    [propput, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] void onblur(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] VARIANT onblur();
    [propput, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] void onfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] VARIANT onfocus();
    [propput, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] void onresize(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] VARIANT onresize();
    [id(DISPID_IHTMLELEMENT2_BLUR)] void blur();
    [id(DISPID_IHTMLELEMENT2_ADDFILTER)] void addFilter([in] IUnknown* pUnk);
    [id(DISPID_IHTMLELEMENT2_REMOVEFILTER)] void removeFilter([in] IUnknown* pUnk);
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTHEIGHT), displaybind, bindable] long clientHeight();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTWIDTH), displaybind, bindable] long clientWidth();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTTOP), displaybind, bindable] long clientTop();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTLEFT), displaybind, bindable] long clientLeft();
    [id(DISPID_IHTMLELEMENT2_ATTACHEVENT)] VARIANT_BOOL attachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [id(DISPID_IHTMLELEMENT2_DETACHEVENT)] void detachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATE)] VARIANT readyState();
    [propput, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] void onreadystatechange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] VARIANT onreadystatechange();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] void onrowsdelete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] VARIANT onrowsdelete();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] void onrowsinserted(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] VARIANT onrowsinserted();
    [propput, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] void oncellchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] VARIANT oncellchange();
    [propput, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] void dir(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] BSTR dir();
    [id(DISPID_IHTMLELEMENT2_CREATECONTROLRANGE)] IDispatch* createControlRange();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLHEIGHT), displaybind, bindable] long scrollHeight();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLWIDTH), displaybind, bindable] long scrollWidth();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] void scrollTop(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] long scrollTop();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] void scrollLeft(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] long scrollLeft();
    [id(DISPID_IHTMLELEMENT2_CLEARATTRIBUTES)] void clearAttributes();
    [id(DISPID_IHTMLELEMENT2_MERGEATTRIBUTES)] void mergeAttributes([in] IHTMLElement* mergeThis);
    [propput, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] void oncontextmenu(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] VARIANT oncontextmenu();
    [id(DISPID_IHTMLELEMENT2_INSERTADJACENTELEMENT)] IHTMLElement* insertAdjacentElement([in] BSTR where,[in] IHTMLElement* insertedElement);
    [id(DISPID_IHTMLELEMENT2_APPLYELEMENT)] IHTMLElement* applyElement([in] IHTMLElement* apply,[in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_GETADJACENTTEXT)] BSTR getAdjacentText([in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_REPLACEADJACENTTEXT)] BSTR replaceAdjacentText([in] BSTR where,[in] BSTR newText);
    [propget, id(DISPID_IHTMLELEMENT2_CANHAVECHILDREN)] VARIANT_BOOL canHaveChildren();
    [id(DISPID_IHTMLELEMENT2_ADDBEHAVIOR)] long addBehavior([in] BSTR bstrUrl,[optional, in] VARIANT* pvarFactory);
    [id(DISPID_IHTMLELEMENT2_REMOVEBEHAVIOR)] VARIANT_BOOL removeBehavior([in] long cookie);
    [propget, id(DISPID_IHTMLELEMENT2_RUNTIMESTYLE), nonbrowsable] IHTMLStyle* runtimeStyle();
    [propget, id(DISPID_IHTMLELEMENT2_BEHAVIORURNS)] IDispatch* behaviorUrns();
    [propput, id(DISPID_IHTMLELEMENT2_TAGURN)] void tagUrn(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_TAGURN)] BSTR tagUrn();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] void onbeforeeditfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] VARIANT onbeforeeditfocus();
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATEVALUE), hidden, restricted] long readyStateValue();
    [id(DISPID_IHTMLELEMENT2_GETELEMENTSBYTAGNAME)] IHTMLElementCollection* getElementsByTagName([in] BSTR v);
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUENUMBER), hidden] long uniqueNumber();
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUEID), hidden] BSTR uniqueID();
    [propget, id(DISPID_IHTMLDOMNODE_NODETYPE)] long nodeType();
    [propget, id(DISPID_IHTMLDOMNODE_PARENTNODE)] IHTMLDOMNode* parentNode();
    [id(DISPID_IHTMLDOMNODE_HASCHILDNODES)] VARIANT_BOOL hasChildNodes();
    [propget, id(DISPID_IHTMLDOMNODE_CHILDNODES)] IDispatch* childNodes();
    [propget, id(DISPID_IHTMLDOMNODE_ATTRIBUTES)] IDispatch* attributes();
    [id(DISPID_IHTMLDOMNODE_INSERTBEFORE)] IHTMLDOMNode* insertBefore([in] IHTMLDOMNode* newChild,[optional, in] VARIANT refChild);
    [id(DISPID_IHTMLDOMNODE_REMOVECHILD)] IHTMLDOMNode* removeChild([in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_REPLACECHILD)] IHTMLDOMNode* replaceChild([in] IHTMLDOMNode* newChild,[in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_CLONENODE)] IHTMLDOMNode* cloneNode([in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_REMOVENODE)] IHTMLDOMNode* removeNode([defaultvalue(0), in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_SWAPNODE)] IHTMLDOMNode* swapNode([in] IHTMLDOMNode* otherNode);
    [id(DISPID_IHTMLDOMNODE_REPLACENODE)] IHTMLDOMNode* replaceNode([in] IHTMLDOMNode* replacement);
    [id(DISPID_IHTMLDOMNODE_APPENDCHILD)] IHTMLDOMNode* appendChild([in] IHTMLDOMNode* newChild);
    [propget, id(DISPID_IHTMLDOMNODE_NODENAME)] BSTR nodeName();
    [propput, id(DISPID_IHTMLDOMNODE_NODEVALUE)] void nodeValue(VARIANT v);
    [propget, id(DISPID_IHTMLDOMNODE_NODEVALUE)] VARIANT nodeValue();
    [propget, id(DISPID_IHTMLDOMNODE_FIRSTCHILD)] IHTMLDOMNode* firstChild();
    [propget, id(DISPID_IHTMLDOMNODE_LASTCHILD)] IHTMLDOMNode* lastChild();
    [propget, id(DISPID_IHTMLDOMNODE_PREVIOUSSIBLING)] IHTMLDOMNode* previousSibling();
    [propget, id(DISPID_IHTMLDOMNODE_NEXTSIBLING)] IHTMLDOMNode* nextSibling();
    [propput, id(DISPID_IHTMLDATABINDING_DATAFLD)] void dataFld(BSTR v);
    [propget, id(DISPID_IHTMLDATABINDING_DATAFLD)] BSTR dataFld();
    [propput, id(DISPID_IHTMLDATABINDING_DATASRC)] void dataSrc(BSTR v);
    [propget, id(DISPID_IHTMLDATABINDING_DATASRC)] BSTR dataSrc();
    [propput, id(DISPID_IHTMLDATABINDING_DATAFORMATAS)] void dataFormatAs(BSTR v);
    [propget, id(DISPID_IHTMLDATABINDING_DATAFORMATAS)] BSTR dataFormatAs();
    [propput, id(DISPID_IHTMLLEGENDELEMENT_ALIGN)] void align(BSTR v);
    [propget, id(DISPID_IHTMLLEGENDELEMENT_ALIGN)] BSTR align();
};
[
    uuid(3050f3e9-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLLegendElement
{
    [default]           dispinterface DispHTMLLegendElement;
    [source, default]   dispinterface HTMLTextContainerEvents;
    [source]            dispinterface HTMLTextContainerEvents2;
                        interface IHTMLElement;
                        interface IHTMLElement2;
                        interface IHTMLUniqueName;
                        interface IHTMLDOMNode;
                        interface IHTMLDatabinding;
                        interface IHTMLControlElement;
                        interface IHTMLTextContainer;
                        interface IHTMLLegendElement;
};
cpp_quote("EXTERN_C const GUID CLSID_CLegendElement;")
[
    odl,
    oleautomation,
    dual,
    uuid(3050f3e5-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLSpanFlow : IDispatch
{
    [propput, id(DISPID_IHTMLSPANFLOW_ALIGN), displaybind, bindable] HRESULT align([in] BSTR v);
    [propget, id(DISPID_IHTMLSPANFLOW_ALIGN), displaybind, bindable] HRESULT align([retval, out] BSTR * p);
};
[
    hidden,
    uuid(3050f544-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTMLSpanFlow
{
properties:
methods:
    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)] void setAttribute([in] BSTR strAttributeName,[in] VARIANT AttributeValue,[defaultvalue(1), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)] VARIANT getAttribute([in] BSTR strAttributeName,[defaultvalue(0), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)] VARIANT_BOOL removeAttribute([in] BSTR strAttributeName,[defaultvalue(1), in] LONG lFlags);
    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] void className(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] BSTR className();
    [propput, id(DISPID_IHTMLELEMENT_ID), bindable] void id(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_ID), bindable] BSTR id();
    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)] BSTR tagName();
    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)] IHTMLElement* parentElement();
    [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable] IHTMLStyle* style();
    [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] void onhelp(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] VARIANT onhelp();
    [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] void onclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] VARIANT onclick();
    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] void ondblclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] VARIANT ondblclick();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] void onkeydown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] VARIANT onkeydown();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] void onkeyup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] VARIANT onkeyup();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] void onkeypress(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] VARIANT onkeypress();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] void onmouseout(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] VARIANT onmouseout();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] void onmouseover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] VARIANT onmouseover();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] void onmousemove(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] VARIANT onmousemove();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] void onmousedown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] VARIANT onmousedown();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] void onmouseup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] VARIANT onmouseup();
    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)] IDispatch* document();
    [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] void title(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] BSTR title();
    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] void language(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] BSTR language();
    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] void onselectstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] VARIANT onselectstart();
    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)] void scrollIntoView([optional, in] VARIANT varargStart);
    [id(DISPID_IHTMLELEMENT_CONTAINS)] VARIANT_BOOL contains([in] IHTMLElement* pChild);
    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable] long sourceIndex();
    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)] VARIANT recordNumber();
    [propput, id(DISPID_IHTMLELEMENT_LANG)] void lang(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANG)] BSTR lang();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)] long offsetLeft();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)] long offsetTop();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)] long offsetWidth();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)] long offsetHeight();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)] IHTMLElement* offsetParent();
    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)] void innerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)] BSTR innerHTML();
    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)] void innerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)] BSTR innerText();
    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)] void outerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)] BSTR outerHTML();
    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)] void outerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)] BSTR outerText();
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)] void insertAdjacentHTML([in] BSTR where,[in] BSTR html);
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)] void insertAdjacentText([in] BSTR where,[in] BSTR text);
    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)] IHTMLElement* parentTextEdit();
    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)] VARIANT_BOOL isTextEdit();
    [id(DISPID_IHTMLELEMENT_CLICK)] void click();
    [propget, id(DISPID_IHTMLELEMENT_FILTERS)] IHTMLFiltersCollection* filters();
    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] void ondragstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] VARIANT ondragstart();
    [id(DISPID_IHTMLELEMENT_TOSTRING)] BSTR toString();
    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] void onbeforeupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] VARIANT onbeforeupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] void onafterupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] VARIANT onafterupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] void onerrorupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] VARIANT onerrorupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] void onrowexit(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] VARIANT onrowexit();
    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] void onrowenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] VARIANT onrowenter();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] void ondatasetchanged(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] VARIANT ondatasetchanged();
    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] void ondataavailable(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] VARIANT ondataavailable();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] void ondatasetcomplete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] VARIANT ondatasetcomplete();
    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] void onfilterchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] VARIANT onfilterchange();
    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)] IDispatch* children();
    [propget, id(DISPID_IHTMLELEMENT_ALL)] IDispatch* all();
    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)] BSTR scopeName();
    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)] void setCapture([defaultvalue(-1), in] VARIANT_BOOL containerCapture);
    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)] void releaseCapture();
    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] void onlosecapture(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] VARIANT onlosecapture();
    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)] BSTR componentFromPoint([in] long x,[in] long y);
    [id(DISPID_IHTMLELEMENT2_DOSCROLL)] void doScroll([optional, in] VARIANT component);
    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] void onscroll(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] VARIANT onscroll();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] void ondrag(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] VARIANT ondrag();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] void ondragend(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] VARIANT ondragend();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] void ondragenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] VARIANT ondragenter();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] void ondragover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] VARIANT ondragover();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] void ondragleave(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] VARIANT ondragleave();
    [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] void ondrop(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] VARIANT ondrop();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] void onbeforecut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] VARIANT onbeforecut();
    [propput, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] void oncut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] VARIANT oncut();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] void onbeforecopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] VARIANT onbeforecopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] void oncopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] VARIANT oncopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] void onbeforepaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] VARIANT onbeforepaste();
    [propput, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] void onpaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] VARIANT onpaste();
    [propget, id(DISPID_IHTMLELEMENT2_CURRENTSTYLE), nonbrowsable] IHTMLCurrentStyle* currentStyle();
    [propput, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] void onpropertychange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] VARIANT onpropertychange();
    [id(DISPID_IHTMLELEMENT2_GETCLIENTRECTS)] IHTMLRectCollection* getClientRects();
    [id(DISPID_IHTMLELEMENT2_GETBOUNDINGCLIENTRECT)] IHTMLRect* getBoundingClientRect();
    [id(DISPID_IHTMLELEMENT2_SETEXPRESSION)] void setExpression([in] BSTR propname,[in] BSTR expression,[defaultvalue(""), in] BSTR language);
    [id(DISPID_IHTMLELEMENT2_GETEXPRESSION)] VARIANT getExpression([in] BSTR propname);
    [id(DISPID_IHTMLELEMENT2_REMOVEEXPRESSION)] VARIANT_BOOL removeExpression([in] BSTR propname);
    [propput, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] void tabIndex(short v);
    [propget, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] short tabIndex();
    [id(DISPID_IHTMLELEMENT2_FOCUS)] void focus();
    [propput, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] void accessKey(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] BSTR accessKey();
    [propput, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] void onblur(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] VARIANT onblur();
    [propput, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] void onfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] VARIANT onfocus();
    [propput, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] void onresize(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] VARIANT onresize();
    [id(DISPID_IHTMLELEMENT2_BLUR)] void blur();
    [id(DISPID_IHTMLELEMENT2_ADDFILTER)] void addFilter([in] IUnknown* pUnk);
    [id(DISPID_IHTMLELEMENT2_REMOVEFILTER)] void removeFilter([in] IUnknown* pUnk);
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTHEIGHT), displaybind, bindable] long clientHeight();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTWIDTH), displaybind, bindable] long clientWidth();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTTOP), displaybind, bindable] long clientTop();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTLEFT), displaybind, bindable] long clientLeft();
    [id(DISPID_IHTMLELEMENT2_ATTACHEVENT)] VARIANT_BOOL attachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [id(DISPID_IHTMLELEMENT2_DETACHEVENT)] void detachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATE)] VARIANT readyState();
    [propput, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] void onreadystatechange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] VARIANT onreadystatechange();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] void onrowsdelete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] VARIANT onrowsdelete();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] void onrowsinserted(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] VARIANT onrowsinserted();
    [propput, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] void oncellchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] VARIANT oncellchange();
    [propput, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] void dir(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] BSTR dir();
    [id(DISPID_IHTMLELEMENT2_CREATECONTROLRANGE)] IDispatch* createControlRange();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLHEIGHT), displaybind, bindable] long scrollHeight();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLWIDTH), displaybind, bindable] long scrollWidth();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] void scrollTop(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] long scrollTop();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] void scrollLeft(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] long scrollLeft();
    [id(DISPID_IHTMLELEMENT2_CLEARATTRIBUTES)] void clearAttributes();
    [id(DISPID_IHTMLELEMENT2_MERGEATTRIBUTES)] void mergeAttributes([in] IHTMLElement* mergeThis);
    [propput, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] void oncontextmenu(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] VARIANT oncontextmenu();
    [id(DISPID_IHTMLELEMENT2_INSERTADJACENTELEMENT)] IHTMLElement* insertAdjacentElement([in] BSTR where,[in] IHTMLElement* insertedElement);
    [id(DISPID_IHTMLELEMENT2_APPLYELEMENT)] IHTMLElement* applyElement([in] IHTMLElement* apply,[in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_GETADJACENTTEXT)] BSTR getAdjacentText([in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_REPLACEADJACENTTEXT)] BSTR replaceAdjacentText([in] BSTR where,[in] BSTR newText);
    [propget, id(DISPID_IHTMLELEMENT2_CANHAVECHILDREN)] VARIANT_BOOL canHaveChildren();
    [id(DISPID_IHTMLELEMENT2_ADDBEHAVIOR)] long addBehavior([in] BSTR bstrUrl,[optional, in] VARIANT* pvarFactory);
    [id(DISPID_IHTMLELEMENT2_REMOVEBEHAVIOR)] VARIANT_BOOL removeBehavior([in] long cookie);
    [propget, id(DISPID_IHTMLELEMENT2_RUNTIMESTYLE), nonbrowsable] IHTMLStyle* runtimeStyle();
    [propget, id(DISPID_IHTMLELEMENT2_BEHAVIORURNS)] IDispatch* behaviorUrns();
    [propput, id(DISPID_IHTMLELEMENT2_TAGURN)] void tagUrn(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_TAGURN)] BSTR tagUrn();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] void onbeforeeditfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] VARIANT onbeforeeditfocus();
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATEVALUE), hidden, restricted] long readyStateValue();
    [id(DISPID_IHTMLELEMENT2_GETELEMENTSBYTAGNAME)] IHTMLElementCollection* getElementsByTagName([in] BSTR v);
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUENUMBER), hidden] long uniqueNumber();
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUEID), hidden] BSTR uniqueID();
    [propget, id(DISPID_IHTMLDOMNODE_NODETYPE)] long nodeType();
    [propget, id(DISPID_IHTMLDOMNODE_PARENTNODE)] IHTMLDOMNode* parentNode();
    [id(DISPID_IHTMLDOMNODE_HASCHILDNODES)] VARIANT_BOOL hasChildNodes();
    [propget, id(DISPID_IHTMLDOMNODE_CHILDNODES)] IDispatch* childNodes();
    [propget, id(DISPID_IHTMLDOMNODE_ATTRIBUTES)] IDispatch* attributes();
    [id(DISPID_IHTMLDOMNODE_INSERTBEFORE)] IHTMLDOMNode* insertBefore([in] IHTMLDOMNode* newChild,[optional, in] VARIANT refChild);
    [id(DISPID_IHTMLDOMNODE_REMOVECHILD)] IHTMLDOMNode* removeChild([in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_REPLACECHILD)] IHTMLDOMNode* replaceChild([in] IHTMLDOMNode* newChild,[in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_CLONENODE)] IHTMLDOMNode* cloneNode([in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_REMOVENODE)] IHTMLDOMNode* removeNode([defaultvalue(0), in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_SWAPNODE)] IHTMLDOMNode* swapNode([in] IHTMLDOMNode* otherNode);
    [id(DISPID_IHTMLDOMNODE_REPLACENODE)] IHTMLDOMNode* replaceNode([in] IHTMLDOMNode* replacement);
    [id(DISPID_IHTMLDOMNODE_APPENDCHILD)] IHTMLDOMNode* appendChild([in] IHTMLDOMNode* newChild);
    [propget, id(DISPID_IHTMLDOMNODE_NODENAME)] BSTR nodeName();
    [propput, id(DISPID_IHTMLDOMNODE_NODEVALUE)] void nodeValue(VARIANT v);
    [propget, id(DISPID_IHTMLDOMNODE_NODEVALUE)] VARIANT nodeValue();
    [propget, id(DISPID_IHTMLDOMNODE_FIRSTCHILD)] IHTMLDOMNode* firstChild();
    [propget, id(DISPID_IHTMLDOMNODE_LASTCHILD)] IHTMLDOMNode* lastChild();
    [propget, id(DISPID_IHTMLDOMNODE_PREVIOUSSIBLING)] IHTMLDOMNode* previousSibling();
    [propget, id(DISPID_IHTMLDOMNODE_NEXTSIBLING)] IHTMLDOMNode* nextSibling();
    [propput, id(DISPID_IHTMLDATABINDING_DATAFLD)] void dataFld(BSTR v);
    [propget, id(DISPID_IHTMLDATABINDING_DATAFLD)] BSTR dataFld();
    [propput, id(DISPID_IHTMLDATABINDING_DATASRC)] void dataSrc(BSTR v);
    [propget, id(DISPID_IHTMLDATABINDING_DATASRC)] BSTR dataSrc();
    [propput, id(DISPID_IHTMLDATABINDING_DATAFORMATAS)] void dataFormatAs(BSTR v);
    [propget, id(DISPID_IHTMLDATABINDING_DATAFORMATAS)] BSTR dataFormatAs();
    [propput, id(DISPID_IHTMLSPANFLOW_ALIGN), displaybind, bindable] void align(BSTR v);
    [propget, id(DISPID_IHTMLSPANFLOW_ALIGN), displaybind, bindable] BSTR align();
};
[
    uuid(3050f3e6-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLSpanFlow
{
    [default]           dispinterface DispHTMLSpanFlow;
    [source, default]   dispinterface HTMLTextContainerEvents;
    [source]            dispinterface HTMLTextContainerEvents2;
                        interface IHTMLElement;
                        interface IHTMLElement2;
                        interface IHTMLUniqueName;
                        interface IHTMLDOMNode;
                        interface IHTMLDatabinding;
                        interface IHTMLControlElement;
                        interface IHTMLTextContainer;
                        interface IHTMLSpanFlow;
};
cpp_quote("EXTERN_C const GUID CLSID_CSpanSite;")
[
    odl,
    oleautomation,
    dual,
    uuid(3050f319-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLFrameSetElement : IDispatch
{
    [propput, id(DISPID_IHTMLFRAMESETELEMENT_ROWS), displaybind, bindable] HRESULT rows([in] BSTR v);
    [propget, id(DISPID_IHTMLFRAMESETELEMENT_ROWS), displaybind, bindable] HRESULT rows([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLFRAMESETELEMENT_COLS), displaybind, bindable] HRESULT cols([in] BSTR v);
    [propget, id(DISPID_IHTMLFRAMESETELEMENT_COLS), displaybind, bindable] HRESULT cols([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLFRAMESETELEMENT_BORDER)] HRESULT border([in] VARIANT v);
    [propget, id(DISPID_IHTMLFRAMESETELEMENT_BORDER)] HRESULT border([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLFRAMESETELEMENT_BORDERCOLOR)] HRESULT borderColor([in] VARIANT v);
    [propget, id(DISPID_IHTMLFRAMESETELEMENT_BORDERCOLOR)] HRESULT borderColor([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLFRAMESETELEMENT_FRAMEBORDER)] HRESULT frameBorder([in] BSTR v);
    [propget, id(DISPID_IHTMLFRAMESETELEMENT_FRAMEBORDER)] HRESULT frameBorder([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLFRAMESETELEMENT_FRAMESPACING)] HRESULT frameSpacing([in] VARIANT v);
    [propget, id(DISPID_IHTMLFRAMESETELEMENT_FRAMESPACING)] HRESULT frameSpacing([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLFRAMESETELEMENT_NAME), displaybind, bindable] HRESULT name([in] BSTR v);
    [propget, id(DISPID_IHTMLFRAMESETELEMENT_NAME), displaybind, bindable] HRESULT name([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLFRAMESETELEMENT_ONLOAD), displaybind, bindable] HRESULT onload([in] VARIANT v);
    [propget, id(DISPID_IHTMLFRAMESETELEMENT_ONLOAD), displaybind, bindable] HRESULT onload([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLFRAMESETELEMENT_ONUNLOAD), displaybind, bindable] HRESULT onunload([in] VARIANT v);
    [propget, id(DISPID_IHTMLFRAMESETELEMENT_ONUNLOAD), displaybind, bindable] HRESULT onunload([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLFRAMESETELEMENT_ONBEFOREUNLOAD), displaybind, bindable] HRESULT onbeforeunload([in] VARIANT v);
    [propget, id(DISPID_IHTMLFRAMESETELEMENT_ONBEFOREUNLOAD), displaybind, bindable] HRESULT onbeforeunload([retval, out] VARIANT * p);
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f5c6-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLFrameSetElement2 : IDispatch
{
    [propput, id(DISPID_IHTMLFRAMESETELEMENT2_ONBEFOREPRINT), displaybind, bindable] HRESULT onbeforeprint([in] VARIANT v);
    [propget, id(DISPID_IHTMLFRAMESETELEMENT2_ONBEFOREPRINT), displaybind, bindable] HRESULT onbeforeprint([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLFRAMESETELEMENT2_ONAFTERPRINT), displaybind, bindable] HRESULT onafterprint([in] VARIANT v);
    [propget, id(DISPID_IHTMLFRAMESETELEMENT2_ONAFTERPRINT), displaybind, bindable] HRESULT onafterprint([retval, out] VARIANT * p);
};
[
    hidden,
    uuid(3050f514-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTMLFrameSetSite
{
properties:
methods:
    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)] void setAttribute([in] BSTR strAttributeName,[in] VARIANT AttributeValue,[defaultvalue(1), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)] VARIANT getAttribute([in] BSTR strAttributeName,[defaultvalue(0), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)] VARIANT_BOOL removeAttribute([in] BSTR strAttributeName,[defaultvalue(1), in] LONG lFlags);
    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] void className(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] BSTR className();
    [propput, id(DISPID_IHTMLELEMENT_ID), bindable] void id(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_ID), bindable] BSTR id();
    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)] BSTR tagName();
    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)] IHTMLElement* parentElement();
    [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable] IHTMLStyle* style();
    [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] void onhelp(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] VARIANT onhelp();
    [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] void onclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] VARIANT onclick();
    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] void ondblclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] VARIANT ondblclick();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] void onkeydown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] VARIANT onkeydown();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] void onkeyup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] VARIANT onkeyup();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] void onkeypress(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] VARIANT onkeypress();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] void onmouseout(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] VARIANT onmouseout();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] void onmouseover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] VARIANT onmouseover();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] void onmousemove(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] VARIANT onmousemove();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] void onmousedown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] VARIANT onmousedown();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] void onmouseup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] VARIANT onmouseup();
    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)] IDispatch* document();
    [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] void title(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] BSTR title();
    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] void language(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] BSTR language();
    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] void onselectstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] VARIANT onselectstart();
    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)] void scrollIntoView([optional, in] VARIANT varargStart);
    [id(DISPID_IHTMLELEMENT_CONTAINS)] VARIANT_BOOL contains([in] IHTMLElement* pChild);
    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable] long sourceIndex();
    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)] VARIANT recordNumber();
    [propput, id(DISPID_IHTMLELEMENT_LANG)] void lang(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANG)] BSTR lang();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)] long offsetLeft();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)] long offsetTop();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)] long offsetWidth();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)] long offsetHeight();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)] IHTMLElement* offsetParent();
    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)] void innerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)] BSTR innerHTML();
    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)] void innerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)] BSTR innerText();
    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)] void outerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)] BSTR outerHTML();
    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)] void outerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)] BSTR outerText();
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)] void insertAdjacentHTML([in] BSTR where,[in] BSTR html);
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)] void insertAdjacentText([in] BSTR where,[in] BSTR text);
    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)] IHTMLElement* parentTextEdit();
    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)] VARIANT_BOOL isTextEdit();
    [id(DISPID_IHTMLELEMENT_CLICK)] void click();
    [propget, id(DISPID_IHTMLELEMENT_FILTERS)] IHTMLFiltersCollection* filters();
    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] void ondragstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] VARIANT ondragstart();
    [id(DISPID_IHTMLELEMENT_TOSTRING)] BSTR toString();
    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] void onbeforeupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] VARIANT onbeforeupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] void onafterupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] VARIANT onafterupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] void onerrorupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] VARIANT onerrorupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] void onrowexit(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] VARIANT onrowexit();
    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] void onrowenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] VARIANT onrowenter();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] void ondatasetchanged(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] VARIANT ondatasetchanged();
    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] void ondataavailable(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] VARIANT ondataavailable();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] void ondatasetcomplete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] VARIANT ondatasetcomplete();
    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] void onfilterchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] VARIANT onfilterchange();
    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)] IDispatch* children();
    [propget, id(DISPID_IHTMLELEMENT_ALL)] IDispatch* all();
    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)] BSTR scopeName();
    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)] void setCapture([defaultvalue(-1), in] VARIANT_BOOL containerCapture);
    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)] void releaseCapture();
    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] void onlosecapture(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] VARIANT onlosecapture();
    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)] BSTR componentFromPoint([in] long x,[in] long y);
    [id(DISPID_IHTMLELEMENT2_DOSCROLL)] void doScroll([optional, in] VARIANT component);
    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] void onscroll(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] VARIANT onscroll();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] void ondrag(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] VARIANT ondrag();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] void ondragend(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] VARIANT ondragend();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] void ondragenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] VARIANT ondragenter();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] void ondragover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] VARIANT ondragover();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] void ondragleave(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] VARIANT ondragleave();
    [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] void ondrop(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] VARIANT ondrop();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] void onbeforecut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] VARIANT onbeforecut();
    [propput, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] void oncut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] VARIANT oncut();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] void onbeforecopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] VARIANT onbeforecopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] void oncopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] VARIANT oncopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] void onbeforepaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] VARIANT onbeforepaste();
    [propput, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] void onpaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] VARIANT onpaste();
    [propget, id(DISPID_IHTMLELEMENT2_CURRENTSTYLE), nonbrowsable] IHTMLCurrentStyle* currentStyle();
    [propput, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] void onpropertychange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] VARIANT onpropertychange();
    [id(DISPID_IHTMLELEMENT2_GETCLIENTRECTS)] IHTMLRectCollection* getClientRects();
    [id(DISPID_IHTMLELEMENT2_GETBOUNDINGCLIENTRECT)] IHTMLRect* getBoundingClientRect();
    [id(DISPID_IHTMLELEMENT2_SETEXPRESSION)] void setExpression([in] BSTR propname,[in] BSTR expression,[defaultvalue(""), in] BSTR language);
    [id(DISPID_IHTMLELEMENT2_GETEXPRESSION)] VARIANT getExpression([in] BSTR propname);
    [id(DISPID_IHTMLELEMENT2_REMOVEEXPRESSION)] VARIANT_BOOL removeExpression([in] BSTR propname);
    [propput, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] void tabIndex(short v);
    [propget, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] short tabIndex();
    [id(DISPID_IHTMLELEMENT2_FOCUS)] void focus();
    [propput, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] void accessKey(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] BSTR accessKey();
    [propput, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] void onblur(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] VARIANT onblur();
    [propput, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] void onfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] VARIANT onfocus();
    [propput, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] void onresize(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] VARIANT onresize();
    [id(DISPID_IHTMLELEMENT2_BLUR)] void blur();
    [id(DISPID_IHTMLELEMENT2_ADDFILTER)] void addFilter([in] IUnknown* pUnk);
    [id(DISPID_IHTMLELEMENT2_REMOVEFILTER)] void removeFilter([in] IUnknown* pUnk);
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTHEIGHT), displaybind, bindable] long clientHeight();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTWIDTH), displaybind, bindable] long clientWidth();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTTOP), displaybind, bindable] long clientTop();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTLEFT), displaybind, bindable] long clientLeft();
    [id(DISPID_IHTMLELEMENT2_ATTACHEVENT)] VARIANT_BOOL attachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [id(DISPID_IHTMLELEMENT2_DETACHEVENT)] void detachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATE)] VARIANT readyState();
    [propput, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] void onreadystatechange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] VARIANT onreadystatechange();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] void onrowsdelete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] VARIANT onrowsdelete();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] void onrowsinserted(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] VARIANT onrowsinserted();
    [propput, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] void oncellchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] VARIANT oncellchange();
    [propput, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] void dir(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] BSTR dir();
    [id(DISPID_IHTMLELEMENT2_CREATECONTROLRANGE)] IDispatch* createControlRange();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLHEIGHT), displaybind, bindable] long scrollHeight();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLWIDTH), displaybind, bindable] long scrollWidth();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] void scrollTop(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] long scrollTop();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] void scrollLeft(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] long scrollLeft();
    [id(DISPID_IHTMLELEMENT2_CLEARATTRIBUTES)] void clearAttributes();
    [id(DISPID_IHTMLELEMENT2_MERGEATTRIBUTES)] void mergeAttributes([in] IHTMLElement* mergeThis);
    [propput, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] void oncontextmenu(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] VARIANT oncontextmenu();
    [id(DISPID_IHTMLELEMENT2_INSERTADJACENTELEMENT)] IHTMLElement* insertAdjacentElement([in] BSTR where,[in] IHTMLElement* insertedElement);
    [id(DISPID_IHTMLELEMENT2_APPLYELEMENT)] IHTMLElement* applyElement([in] IHTMLElement* apply,[in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_GETADJACENTTEXT)] BSTR getAdjacentText([in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_REPLACEADJACENTTEXT)] BSTR replaceAdjacentText([in] BSTR where,[in] BSTR newText);
    [propget, id(DISPID_IHTMLELEMENT2_CANHAVECHILDREN)] VARIANT_BOOL canHaveChildren();
    [id(DISPID_IHTMLELEMENT2_ADDBEHAVIOR)] long addBehavior([in] BSTR bstrUrl,[optional, in] VARIANT* pvarFactory);
    [id(DISPID_IHTMLELEMENT2_REMOVEBEHAVIOR)] VARIANT_BOOL removeBehavior([in] long cookie);
    [propget, id(DISPID_IHTMLELEMENT2_RUNTIMESTYLE), nonbrowsable] IHTMLStyle* runtimeStyle();
    [propget, id(DISPID_IHTMLELEMENT2_BEHAVIORURNS)] IDispatch* behaviorUrns();
    [propput, id(DISPID_IHTMLELEMENT2_TAGURN)] void tagUrn(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_TAGURN)] BSTR tagUrn();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] void onbeforeeditfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] VARIANT onbeforeeditfocus();
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATEVALUE), hidden, restricted] long readyStateValue();
    [id(DISPID_IHTMLELEMENT2_GETELEMENTSBYTAGNAME)] IHTMLElementCollection* getElementsByTagName([in] BSTR v);
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUENUMBER), hidden] long uniqueNumber();
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUEID), hidden] BSTR uniqueID();
    [propget, id(DISPID_IHTMLDOMNODE_NODETYPE)] long nodeType();
    [propget, id(DISPID_IHTMLDOMNODE_PARENTNODE)] IHTMLDOMNode* parentNode();
    [id(DISPID_IHTMLDOMNODE_HASCHILDNODES)] VARIANT_BOOL hasChildNodes();
    [propget, id(DISPID_IHTMLDOMNODE_CHILDNODES)] IDispatch* childNodes();
    [propget, id(DISPID_IHTMLDOMNODE_ATTRIBUTES)] IDispatch* attributes();
    [id(DISPID_IHTMLDOMNODE_INSERTBEFORE)] IHTMLDOMNode* insertBefore([in] IHTMLDOMNode* newChild,[optional, in] VARIANT refChild);
    [id(DISPID_IHTMLDOMNODE_REMOVECHILD)] IHTMLDOMNode* removeChild([in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_REPLACECHILD)] IHTMLDOMNode* replaceChild([in] IHTMLDOMNode* newChild,[in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_CLONENODE)] IHTMLDOMNode* cloneNode([in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_REMOVENODE)] IHTMLDOMNode* removeNode([defaultvalue(0), in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_SWAPNODE)] IHTMLDOMNode* swapNode([in] IHTMLDOMNode* otherNode);
    [id(DISPID_IHTMLDOMNODE_REPLACENODE)] IHTMLDOMNode* replaceNode([in] IHTMLDOMNode* replacement);
    [id(DISPID_IHTMLDOMNODE_APPENDCHILD)] IHTMLDOMNode* appendChild([in] IHTMLDOMNode* newChild);
    [propget, id(DISPID_IHTMLDOMNODE_NODENAME)] BSTR nodeName();
    [propput, id(DISPID_IHTMLDOMNODE_NODEVALUE)] void nodeValue(VARIANT v);
    [propget, id(DISPID_IHTMLDOMNODE_NODEVALUE)] VARIANT nodeValue();
    [propget, id(DISPID_IHTMLDOMNODE_FIRSTCHILD)] IHTMLDOMNode* firstChild();
    [propget, id(DISPID_IHTMLDOMNODE_LASTCHILD)] IHTMLDOMNode* lastChild();
    [propget, id(DISPID_IHTMLDOMNODE_PREVIOUSSIBLING)] IHTMLDOMNode* previousSibling();
    [propget, id(DISPID_IHTMLDOMNODE_NEXTSIBLING)] IHTMLDOMNode* nextSibling();
    [propput, id(DISPID_IHTMLFRAMESETELEMENT_ROWS), displaybind, bindable] void rows(BSTR v);
    [propget, id(DISPID_IHTMLFRAMESETELEMENT_ROWS), displaybind, bindable] BSTR rows();
    [propput, id(DISPID_IHTMLFRAMESETELEMENT_COLS), displaybind, bindable] void cols(BSTR v);
    [propget, id(DISPID_IHTMLFRAMESETELEMENT_COLS), displaybind, bindable] BSTR cols();
    [propput, id(DISPID_IHTMLFRAMESETELEMENT_BORDER)] void border(VARIANT v);
    [propget, id(DISPID_IHTMLFRAMESETELEMENT_BORDER)] VARIANT border();
    [propput, id(DISPID_IHTMLFRAMESETELEMENT_BORDERCOLOR)] void borderColor(VARIANT v);
    [propget, id(DISPID_IHTMLFRAMESETELEMENT_BORDERCOLOR)] VARIANT borderColor();
    [propput, id(DISPID_IHTMLFRAMESETELEMENT_FRAMEBORDER)] void frameBorder(BSTR v);
    [propget, id(DISPID_IHTMLFRAMESETELEMENT_FRAMEBORDER)] BSTR frameBorder();
    [propput, id(DISPID_IHTMLFRAMESETELEMENT_FRAMESPACING)] void frameSpacing(VARIANT v);
    [propget, id(DISPID_IHTMLFRAMESETELEMENT_FRAMESPACING)] VARIANT frameSpacing();
    [propput, id(DISPID_IHTMLFRAMESETELEMENT_NAME), displaybind, bindable] void name(BSTR v);
    [propget, id(DISPID_IHTMLFRAMESETELEMENT_NAME), displaybind, bindable] BSTR name();
    [propput, id(DISPID_IHTMLFRAMESETELEMENT_ONLOAD), displaybind, bindable] void onload(VARIANT v);
    [propget, id(DISPID_IHTMLFRAMESETELEMENT_ONLOAD), displaybind, bindable] VARIANT onload();
    [propput, id(DISPID_IHTMLFRAMESETELEMENT_ONUNLOAD), displaybind, bindable] void onunload(VARIANT v);
    [propget, id(DISPID_IHTMLFRAMESETELEMENT_ONUNLOAD), displaybind, bindable] VARIANT onunload();
    [propput, id(DISPID_IHTMLFRAMESETELEMENT_ONBEFOREUNLOAD), displaybind, bindable] void onbeforeunload(VARIANT v);
    [propget, id(DISPID_IHTMLFRAMESETELEMENT_ONBEFOREUNLOAD), displaybind, bindable] VARIANT onbeforeunload();
    [propput, id(DISPID_IHTMLFRAMESETELEMENT2_ONBEFOREPRINT), displaybind, bindable] void onbeforeprint(VARIANT v);
    [propget, id(DISPID_IHTMLFRAMESETELEMENT2_ONBEFOREPRINT), displaybind, bindable] VARIANT onbeforeprint();
    [propput, id(DISPID_IHTMLFRAMESETELEMENT2_ONAFTERPRINT), displaybind, bindable] void onafterprint(VARIANT v);
    [propget, id(DISPID_IHTMLFRAMESETELEMENT2_ONAFTERPRINT), displaybind, bindable] VARIANT onafterprint();
};
[
    uuid(3050f31A-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLFrameSetSite
{
    [default]           dispinterface DispHTMLFrameSetSite;
    [source, default]   dispinterface HTMLControlElementEvents;
    [source]            dispinterface HTMLControlElementEvents2;
                        interface IHTMLElement;
                        interface IHTMLElement2;
                        interface IHTMLUniqueName;
                        interface IHTMLDOMNode;
                        interface IHTMLControlElement;
                        interface IHTMLFrameSetElement;
                        interface IHTMLFrameSetElement2;
};
cpp_quote("EXTERN_C const GUID CLSID_CFrameSetSite;")
[
    odl,
    oleautomation,
    dual,
    uuid(3050f369-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLBGsound : IDispatch
{
    [propput, id(DISPID_IHTMLBGSOUND_SRC), displaybind, bindable] HRESULT src([in] BSTR v);
    [propget, id(DISPID_IHTMLBGSOUND_SRC), displaybind, bindable] HRESULT src([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLBGSOUND_LOOP), displaybind, bindable] HRESULT loop([in] VARIANT v);
    [propget, id(DISPID_IHTMLBGSOUND_LOOP), displaybind, bindable] HRESULT loop([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLBGSOUND_VOLUME), displaybind, bindable] HRESULT volume([in] VARIANT v);
    [propget, id(DISPID_IHTMLBGSOUND_VOLUME), displaybind, bindable] HRESULT volume([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLBGSOUND_BALANCE), displaybind, bindable] HRESULT balance([in] VARIANT v);
    [propget, id(DISPID_IHTMLBGSOUND_BALANCE), displaybind, bindable] HRESULT balance([retval, out] VARIANT * p);
};
[
    hidden,
    uuid(3050f53c-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTMLBGsound
{
properties:
methods:
    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)] void setAttribute([in] BSTR strAttributeName,[in] VARIANT AttributeValue,[defaultvalue(1), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)] VARIANT getAttribute([in] BSTR strAttributeName,[defaultvalue(0), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)] VARIANT_BOOL removeAttribute([in] BSTR strAttributeName,[defaultvalue(1), in] LONG lFlags);
    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] void className(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] BSTR className();
    [propput, id(DISPID_IHTMLELEMENT_ID), bindable] void id(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_ID), bindable] BSTR id();
    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)] BSTR tagName();
    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)] IHTMLElement* parentElement();
    [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable] IHTMLStyle* style();
    [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] void onhelp(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] VARIANT onhelp();
    [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] void onclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] VARIANT onclick();
    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] void ondblclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] VARIANT ondblclick();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] void onkeydown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] VARIANT onkeydown();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] void onkeyup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] VARIANT onkeyup();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] void onkeypress(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] VARIANT onkeypress();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] void onmouseout(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] VARIANT onmouseout();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] void onmouseover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] VARIANT onmouseover();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] void onmousemove(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] VARIANT onmousemove();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] void onmousedown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] VARIANT onmousedown();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] void onmouseup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] VARIANT onmouseup();
    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)] IDispatch* document();
    [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] void title(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] BSTR title();
    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] void language(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] BSTR language();
    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] void onselectstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] VARIANT onselectstart();
    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)] void scrollIntoView([optional, in] VARIANT varargStart);
    [id(DISPID_IHTMLELEMENT_CONTAINS)] VARIANT_BOOL contains([in] IHTMLElement* pChild);
    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable] long sourceIndex();
    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)] VARIANT recordNumber();
    [propput, id(DISPID_IHTMLELEMENT_LANG)] void lang(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANG)] BSTR lang();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)] long offsetLeft();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)] long offsetTop();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)] long offsetWidth();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)] long offsetHeight();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)] IHTMLElement* offsetParent();
    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)] void innerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)] BSTR innerHTML();
    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)] void innerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)] BSTR innerText();
    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)] void outerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)] BSTR outerHTML();
    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)] void outerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)] BSTR outerText();
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)] void insertAdjacentHTML([in] BSTR where,[in] BSTR html);
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)] void insertAdjacentText([in] BSTR where,[in] BSTR text);
    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)] IHTMLElement* parentTextEdit();
    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)] VARIANT_BOOL isTextEdit();
    [id(DISPID_IHTMLELEMENT_CLICK)] void click();
    [propget, id(DISPID_IHTMLELEMENT_FILTERS)] IHTMLFiltersCollection* filters();
    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] void ondragstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] VARIANT ondragstart();
    [id(DISPID_IHTMLELEMENT_TOSTRING)] BSTR toString();
    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] void onbeforeupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] VARIANT onbeforeupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] void onafterupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] VARIANT onafterupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] void onerrorupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] VARIANT onerrorupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] void onrowexit(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] VARIANT onrowexit();
    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] void onrowenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] VARIANT onrowenter();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] void ondatasetchanged(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] VARIANT ondatasetchanged();
    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] void ondataavailable(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] VARIANT ondataavailable();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] void ondatasetcomplete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] VARIANT ondatasetcomplete();
    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] void onfilterchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] VARIANT onfilterchange();
    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)] IDispatch* children();
    [propget, id(DISPID_IHTMLELEMENT_ALL)] IDispatch* all();
    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)] BSTR scopeName();
    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)] void setCapture([defaultvalue(-1), in] VARIANT_BOOL containerCapture);
    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)] void releaseCapture();
    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] void onlosecapture(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] VARIANT onlosecapture();
    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)] BSTR componentFromPoint([in] long x,[in] long y);
    [id(DISPID_IHTMLELEMENT2_DOSCROLL)] void doScroll([optional, in] VARIANT component);
    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] void onscroll(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] VARIANT onscroll();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] void ondrag(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] VARIANT ondrag();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] void ondragend(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] VARIANT ondragend();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] void ondragenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] VARIANT ondragenter();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] void ondragover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] VARIANT ondragover();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] void ondragleave(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] VARIANT ondragleave();
    [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] void ondrop(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] VARIANT ondrop();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] void onbeforecut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] VARIANT onbeforecut();
    [propput, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] void oncut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] VARIANT oncut();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] void onbeforecopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] VARIANT onbeforecopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] void oncopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] VARIANT oncopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] void onbeforepaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] VARIANT onbeforepaste();
    [propput, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] void onpaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] VARIANT onpaste();
    [propget, id(DISPID_IHTMLELEMENT2_CURRENTSTYLE), nonbrowsable] IHTMLCurrentStyle* currentStyle();
    [propput, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] void onpropertychange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] VARIANT onpropertychange();
    [id(DISPID_IHTMLELEMENT2_GETCLIENTRECTS)] IHTMLRectCollection* getClientRects();
    [id(DISPID_IHTMLELEMENT2_GETBOUNDINGCLIENTRECT)] IHTMLRect* getBoundingClientRect();
    [id(DISPID_IHTMLELEMENT2_SETEXPRESSION)] void setExpression([in] BSTR propname,[in] BSTR expression,[defaultvalue(""), in] BSTR language);
    [id(DISPID_IHTMLELEMENT2_GETEXPRESSION)] VARIANT getExpression([in] BSTR propname);
    [id(DISPID_IHTMLELEMENT2_REMOVEEXPRESSION)] VARIANT_BOOL removeExpression([in] BSTR propname);
    [propput, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] void tabIndex(short v);
    [propget, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] short tabIndex();
    [id(DISPID_IHTMLELEMENT2_FOCUS)] void focus();
    [propput, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] void accessKey(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] BSTR accessKey();
    [propput, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] void onblur(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] VARIANT onblur();
    [propput, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] void onfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] VARIANT onfocus();
    [propput, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] void onresize(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] VARIANT onresize();
    [id(DISPID_IHTMLELEMENT2_BLUR)] void blur();
    [id(DISPID_IHTMLELEMENT2_ADDFILTER)] void addFilter([in] IUnknown* pUnk);
    [id(DISPID_IHTMLELEMENT2_REMOVEFILTER)] void removeFilter([in] IUnknown* pUnk);
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTHEIGHT), displaybind, bindable] long clientHeight();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTWIDTH), displaybind, bindable] long clientWidth();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTTOP), displaybind, bindable] long clientTop();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTLEFT), displaybind, bindable] long clientLeft();
    [id(DISPID_IHTMLELEMENT2_ATTACHEVENT)] VARIANT_BOOL attachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [id(DISPID_IHTMLELEMENT2_DETACHEVENT)] void detachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATE)] VARIANT readyState();
    [propput, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] void onreadystatechange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] VARIANT onreadystatechange();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] void onrowsdelete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] VARIANT onrowsdelete();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] void onrowsinserted(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] VARIANT onrowsinserted();
    [propput, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] void oncellchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] VARIANT oncellchange();
    [propput, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] void dir(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] BSTR dir();
    [id(DISPID_IHTMLELEMENT2_CREATECONTROLRANGE)] IDispatch* createControlRange();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLHEIGHT), displaybind, bindable] long scrollHeight();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLWIDTH), displaybind, bindable] long scrollWidth();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] void scrollTop(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] long scrollTop();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] void scrollLeft(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] long scrollLeft();
    [id(DISPID_IHTMLELEMENT2_CLEARATTRIBUTES)] void clearAttributes();
    [id(DISPID_IHTMLELEMENT2_MERGEATTRIBUTES)] void mergeAttributes([in] IHTMLElement* mergeThis);
    [propput, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] void oncontextmenu(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] VARIANT oncontextmenu();
    [id(DISPID_IHTMLELEMENT2_INSERTADJACENTELEMENT)] IHTMLElement* insertAdjacentElement([in] BSTR where,[in] IHTMLElement* insertedElement);
    [id(DISPID_IHTMLELEMENT2_APPLYELEMENT)] IHTMLElement* applyElement([in] IHTMLElement* apply,[in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_GETADJACENTTEXT)] BSTR getAdjacentText([in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_REPLACEADJACENTTEXT)] BSTR replaceAdjacentText([in] BSTR where,[in] BSTR newText);
    [propget, id(DISPID_IHTMLELEMENT2_CANHAVECHILDREN)] VARIANT_BOOL canHaveChildren();
    [id(DISPID_IHTMLELEMENT2_ADDBEHAVIOR)] long addBehavior([in] BSTR bstrUrl,[optional, in] VARIANT* pvarFactory);
    [id(DISPID_IHTMLELEMENT2_REMOVEBEHAVIOR)] VARIANT_BOOL removeBehavior([in] long cookie);
    [propget, id(DISPID_IHTMLELEMENT2_RUNTIMESTYLE), nonbrowsable] IHTMLStyle* runtimeStyle();
    [propget, id(DISPID_IHTMLELEMENT2_BEHAVIORURNS)] IDispatch* behaviorUrns();
    [propput, id(DISPID_IHTMLELEMENT2_TAGURN)] void tagUrn(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_TAGURN)] BSTR tagUrn();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] void onbeforeeditfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] VARIANT onbeforeeditfocus();
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATEVALUE), hidden, restricted] long readyStateValue();
    [id(DISPID_IHTMLELEMENT2_GETELEMENTSBYTAGNAME)] IHTMLElementCollection* getElementsByTagName([in] BSTR v);
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUENUMBER), hidden] long uniqueNumber();
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUEID), hidden] BSTR uniqueID();
    [propget, id(DISPID_IHTMLDOMNODE_NODETYPE)] long nodeType();
    [propget, id(DISPID_IHTMLDOMNODE_PARENTNODE)] IHTMLDOMNode* parentNode();
    [id(DISPID_IHTMLDOMNODE_HASCHILDNODES)] VARIANT_BOOL hasChildNodes();
    [propget, id(DISPID_IHTMLDOMNODE_CHILDNODES)] IDispatch* childNodes();
    [propget, id(DISPID_IHTMLDOMNODE_ATTRIBUTES)] IDispatch* attributes();
    [id(DISPID_IHTMLDOMNODE_INSERTBEFORE)] IHTMLDOMNode* insertBefore([in] IHTMLDOMNode* newChild,[optional, in] VARIANT refChild);
    [id(DISPID_IHTMLDOMNODE_REMOVECHILD)] IHTMLDOMNode* removeChild([in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_REPLACECHILD)] IHTMLDOMNode* replaceChild([in] IHTMLDOMNode* newChild,[in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_CLONENODE)] IHTMLDOMNode* cloneNode([in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_REMOVENODE)] IHTMLDOMNode* removeNode([defaultvalue(0), in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_SWAPNODE)] IHTMLDOMNode* swapNode([in] IHTMLDOMNode* otherNode);
    [id(DISPID_IHTMLDOMNODE_REPLACENODE)] IHTMLDOMNode* replaceNode([in] IHTMLDOMNode* replacement);
    [id(DISPID_IHTMLDOMNODE_APPENDCHILD)] IHTMLDOMNode* appendChild([in] IHTMLDOMNode* newChild);
    [propget, id(DISPID_IHTMLDOMNODE_NODENAME)] BSTR nodeName();
    [propput, id(DISPID_IHTMLDOMNODE_NODEVALUE)] void nodeValue(VARIANT v);
    [propget, id(DISPID_IHTMLDOMNODE_NODEVALUE)] VARIANT nodeValue();
    [propget, id(DISPID_IHTMLDOMNODE_FIRSTCHILD)] IHTMLDOMNode* firstChild();
    [propget, id(DISPID_IHTMLDOMNODE_LASTCHILD)] IHTMLDOMNode* lastChild();
    [propget, id(DISPID_IHTMLDOMNODE_PREVIOUSSIBLING)] IHTMLDOMNode* previousSibling();
    [propget, id(DISPID_IHTMLDOMNODE_NEXTSIBLING)] IHTMLDOMNode* nextSibling();
    [propput, id(DISPID_IHTMLBGSOUND_SRC), displaybind, bindable] void src(BSTR v);
    [propget, id(DISPID_IHTMLBGSOUND_SRC), displaybind, bindable] BSTR src();
    [propput, id(DISPID_IHTMLBGSOUND_LOOP), displaybind, bindable] void loop(VARIANT v);
    [propget, id(DISPID_IHTMLBGSOUND_LOOP), displaybind, bindable] VARIANT loop();
    [propput, id(DISPID_IHTMLBGSOUND_VOLUME), displaybind, bindable] void volume(VARIANT v);
    [propget, id(DISPID_IHTMLBGSOUND_VOLUME), displaybind, bindable] VARIANT volume();
    [propput, id(DISPID_IHTMLBGSOUND_BALANCE), displaybind, bindable] void balance(VARIANT v);
    [propget, id(DISPID_IHTMLBGSOUND_BALANCE), displaybind, bindable] VARIANT balance();
};
[
    uuid(3050f370-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLBGsound
{
    [default]           dispinterface DispHTMLBGsound;
    [source, default]   dispinterface HTMLElementEvents;
    [source]            dispinterface HTMLElementEvents2;
                        interface IHTMLElement;
                        interface IHTMLElement2;
                        interface IHTMLUniqueName;
                        interface IHTMLDOMNode;
                        interface IHTMLBGsound;
};
cpp_quote("EXTERN_C const GUID CLSID_CBGsound;")
[
    odl,
    oleautomation,
    dual,
    uuid(3050f376-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLFontNamesCollection : IDispatch
{
    [propget, id(DISPID_IHTMLFONTNAMESCOLLECTION_LENGTH), hidden] HRESULT length([retval, out] long * p);
    [propget, id(DISPID_IHTMLFONTNAMESCOLLECTION__NEWENUM), hidden, restricted] HRESULT _newEnum([retval, out] IUnknown* * p);
    [id(DISPID_IHTMLFONTNAMESCOLLECTION_ITEM)] HRESULT item([in] long index,[retval, out] BSTR* pBstr);
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f377-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLFontSizesCollection : IDispatch
{
    [propget, id(DISPID_IHTMLFONTSIZESCOLLECTION_LENGTH), hidden] HRESULT length([retval, out] long * p);
    [propget, id(DISPID_IHTMLFONTSIZESCOLLECTION__NEWENUM), hidden, restricted] HRESULT _newEnum([retval, out] IUnknown* * p);
    [propget, id(DISPID_IHTMLFONTSIZESCOLLECTION_FORFONT)] HRESULT forFont([retval, out] BSTR * p);
    [id(DISPID_IHTMLFONTSIZESCOLLECTION_ITEM)] HRESULT item([in] long index,[retval, out] long* plSize);
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f378-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLOptionsHolder : IDispatch
{
    [propget, id(DISPID_IHTMLOPTIONSHOLDER_DOCUMENT), hidden] HRESULT document([retval, out] IHTMLDocument2* * p);
    [propget, id(DISPID_IHTMLOPTIONSHOLDER_FONTS), hidden] HRESULT fonts([retval, out] IHTMLFontNamesCollection* * p);
    [propput, id(DISPID_IHTMLOPTIONSHOLDER_EXECARG)] HRESULT execArg([in] VARIANT v);
    [propget, id(DISPID_IHTMLOPTIONSHOLDER_EXECARG)] HRESULT execArg([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLOPTIONSHOLDER_ERRORLINE)] HRESULT errorLine([in] long v);
    [propget, id(DISPID_IHTMLOPTIONSHOLDER_ERRORLINE)] HRESULT errorLine([retval, out] long * p);
    [propput, id(DISPID_IHTMLOPTIONSHOLDER_ERRORCHARACTER)] HRESULT errorCharacter([in] long v);
    [propget, id(DISPID_IHTMLOPTIONSHOLDER_ERRORCHARACTER)] HRESULT errorCharacter([retval, out] long * p);
    [propput, id(DISPID_IHTMLOPTIONSHOLDER_ERRORCODE)] HRESULT errorCode([in] long v);
    [propget, id(DISPID_IHTMLOPTIONSHOLDER_ERRORCODE)] HRESULT errorCode([retval, out] long * p);
    [propput, id(DISPID_IHTMLOPTIONSHOLDER_ERRORMESSAGE)] HRESULT errorMessage([in] BSTR v);
    [propget, id(DISPID_IHTMLOPTIONSHOLDER_ERRORMESSAGE)] HRESULT errorMessage([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLOPTIONSHOLDER_ERRORDEBUG)] HRESULT errorDebug([in] VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLOPTIONSHOLDER_ERRORDEBUG)] HRESULT errorDebug([retval, out] VARIANT_BOOL * p);
    [propget, id(DISPID_IHTMLOPTIONSHOLDER_UNSECUREDWINDOWOFDOCUMENT), hidden] HRESULT unsecuredWindowOfDocument([retval, out] IHTMLWindow2* * p);
    [propput, id(DISPID_IHTMLOPTIONSHOLDER_FINDTEXT)] HRESULT findText([in] BSTR v);
    [propget, id(DISPID_IHTMLOPTIONSHOLDER_FINDTEXT)] HRESULT findText([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLOPTIONSHOLDER_ANYTHINGAFTERFRAMESET)] HRESULT anythingAfterFrameset([in] VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLOPTIONSHOLDER_ANYTHINGAFTERFRAMESET)] HRESULT anythingAfterFrameset([retval, out] VARIANT_BOOL * p);
    [id(DISPID_IHTMLOPTIONSHOLDER_SIZES)] HRESULT sizes([in] BSTR fontName,[retval, out] IHTMLFontSizesCollection** pSizesCollection);
    [id(DISPID_IHTMLOPTIONSHOLDER_OPENFILEDLG)] HRESULT openfiledlg([optional, in] VARIANT initFile,[optional, in] VARIANT initDir,[optional, in] VARIANT filter,[optional, in] VARIANT title,[retval, out] BSTR* pathName);
    [id(DISPID_IHTMLOPTIONSHOLDER_SAVEFILEDLG)] HRESULT savefiledlg([optional, in] VARIANT initFile,[optional, in] VARIANT initDir,[optional, in] VARIANT filter,[optional, in] VARIANT title,[retval, out] BSTR* pathName);
    [id(DISPID_IHTMLOPTIONSHOLDER_CHOOSECOLORDLG)] HRESULT choosecolordlg([optional, in] VARIANT initColor,[retval, out] long* rgbColor);
    [id(DISPID_IHTMLOPTIONSHOLDER_SHOWSECURITYINFO)] HRESULT showSecurityInfo();
    [id(DISPID_IHTMLOPTIONSHOLDER_ISAPARTMENTMODEL)] HRESULT isApartmentModel([in] IHTMLObjectElement* object,[retval, out] VARIANT_BOOL* fApartment);
    [id(DISPID_IHTMLOPTIONSHOLDER_GETCHARSET)] HRESULT getCharset([in] BSTR fontName,[retval, out] long* charset);
    [propget, id(DISPID_IHTMLOPTIONSHOLDER_SECURECONNECTIONINFO)] HRESULT secureConnectionInfo([retval, out] BSTR * p);
};
[
    hidden,
    uuid(3050f615-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface HTMLStyleElementEvents2
{
properties:
methods:
    [id(DISPID_HTMLELEMENTEVENTS2_ONHELP)] VARIANT_BOOL onhelp([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCLICK)] VARIANT_BOOL onclick([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDBLCLICK)] VARIANT_BOOL ondblclick([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONKEYPRESS)] VARIANT_BOOL onkeypress([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONKEYDOWN)] void onkeydown([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONKEYUP)] void onkeyup([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEOUT)] void onmouseout([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEOVER)] void onmouseover([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEMOVE)] void onmousemove([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEDOWN)] void onmousedown([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONMOUSEUP)] void onmouseup([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONSELECTSTART)] VARIANT_BOOL onselectstart([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONFILTERCHANGE)] void onfilterchange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGSTART)] VARIANT_BOOL ondragstart([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFOREUPDATE)] VARIANT_BOOL onbeforeupdate([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONAFTERUPDATE)] void onafterupdate([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONERRORUPDATE)] VARIANT_BOOL onerrorupdate([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWEXIT)] VARIANT_BOOL onrowexit([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWENTER)] void onrowenter([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDATASETCHANGED)] void ondatasetchanged([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDATAAVAILABLE)] void ondataavailable([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDATASETCOMPLETE)] void ondatasetcomplete([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONLOSECAPTURE)] void onlosecapture([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONPROPERTYCHANGE)] void onpropertychange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONSCROLL)] void onscroll([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONFOCUS)] void onfocus([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBLUR)] void onblur([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONRESIZE)] void onresize([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAG)] VARIANT_BOOL ondrag([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGEND)] void ondragend([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGENTER)] VARIANT_BOOL ondragenter([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGOVER)] VARIANT_BOOL ondragover([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDRAGLEAVE)] void ondragleave([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONDROP)] VARIANT_BOOL ondrop([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFORECUT)] VARIANT_BOOL onbeforecut([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCUT)] VARIANT_BOOL oncut([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFORECOPY)] VARIANT_BOOL onbeforecopy([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCOPY)] VARIANT_BOOL oncopy([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONBEFOREPASTE)] VARIANT_BOOL onbeforepaste([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONPASTE)] VARIANT_BOOL onpaste([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCONTEXTMENU)] VARIANT_BOOL oncontextmenu([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWSDELETE)] void onrowsdelete([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONROWSINSERTED)] void onrowsinserted([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONCELLCHANGE)] void oncellchange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLELEMENTEVENTS2_ONREADYSTATECHANGE)] void onreadystatechange([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLSTYLEELEMENTEVENTS2_ONLOAD)] void onload([in] IHTMLEventObj* pEvtObj);
    [id(DISPID_HTMLSTYLEELEMENTEVENTS2_ONERROR)] void onerror([in] IHTMLEventObj* pEvtObj);
};
[
    hidden,
    uuid(3050f3cb-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface HTMLStyleElementEvents
{
properties:
methods:
    [id(DISPID_HTMLELEMENTEVENTS_ONHELP)] VARIANT_BOOL onhelp();
    [id(DISPID_HTMLELEMENTEVENTS_ONCLICK)] VARIANT_BOOL onclick();
    [id(DISPID_HTMLELEMENTEVENTS_ONDBLCLICK)] VARIANT_BOOL ondblclick();
    [id(DISPID_HTMLELEMENTEVENTS_ONKEYPRESS)] VARIANT_BOOL onkeypress();
    [id(DISPID_HTMLELEMENTEVENTS_ONKEYDOWN)] void onkeydown();
    [id(DISPID_HTMLELEMENTEVENTS_ONKEYUP)] void onkeyup();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEOUT)] void onmouseout();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEOVER)] void onmouseover();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEMOVE)] void onmousemove();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEDOWN)] void onmousedown();
    [id(DISPID_HTMLELEMENTEVENTS_ONMOUSEUP)] void onmouseup();
    [id(DISPID_HTMLELEMENTEVENTS_ONSELECTSTART)] VARIANT_BOOL onselectstart();
    [id(DISPID_HTMLELEMENTEVENTS_ONFILTERCHANGE)] void onfilterchange();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGSTART)] VARIANT_BOOL ondragstart();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREUPDATE)] VARIANT_BOOL onbeforeupdate();
    [id(DISPID_HTMLELEMENTEVENTS_ONAFTERUPDATE)] void onafterupdate();
    [id(DISPID_HTMLELEMENTEVENTS_ONERRORUPDATE)] VARIANT_BOOL onerrorupdate();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWEXIT)] VARIANT_BOOL onrowexit();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWENTER)] void onrowenter();
    [id(DISPID_HTMLELEMENTEVENTS_ONDATASETCHANGED)] void ondatasetchanged();
    [id(DISPID_HTMLELEMENTEVENTS_ONDATAAVAILABLE)] void ondataavailable();
    [id(DISPID_HTMLELEMENTEVENTS_ONDATASETCOMPLETE)] void ondatasetcomplete();
    [id(DISPID_HTMLELEMENTEVENTS_ONLOSECAPTURE)] void onlosecapture();
    [id(DISPID_HTMLELEMENTEVENTS_ONPROPERTYCHANGE)] void onpropertychange();
    [id(DISPID_HTMLELEMENTEVENTS_ONSCROLL)] void onscroll();
    [id(DISPID_HTMLELEMENTEVENTS_ONFOCUS)] void onfocus();
    [id(DISPID_HTMLELEMENTEVENTS_ONBLUR)] void onblur();
    [id(DISPID_HTMLELEMENTEVENTS_ONRESIZE)] void onresize();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAG)] VARIANT_BOOL ondrag();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGEND)] void ondragend();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGENTER)] VARIANT_BOOL ondragenter();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGOVER)] VARIANT_BOOL ondragover();
    [id(DISPID_HTMLELEMENTEVENTS_ONDRAGLEAVE)] void ondragleave();
    [id(DISPID_HTMLELEMENTEVENTS_ONDROP)] VARIANT_BOOL ondrop();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFORECUT)] VARIANT_BOOL onbeforecut();
    [id(DISPID_HTMLELEMENTEVENTS_ONCUT)] VARIANT_BOOL oncut();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFORECOPY)] VARIANT_BOOL onbeforecopy();
    [id(DISPID_HTMLELEMENTEVENTS_ONCOPY)] VARIANT_BOOL oncopy();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREPASTE)] VARIANT_BOOL onbeforepaste();
    [id(DISPID_HTMLELEMENTEVENTS_ONPASTE)] VARIANT_BOOL onpaste();
    [id(DISPID_HTMLELEMENTEVENTS_ONCONTEXTMENU)] VARIANT_BOOL oncontextmenu();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWSDELETE)] void onrowsdelete();
    [id(DISPID_HTMLELEMENTEVENTS_ONROWSINSERTED)] void onrowsinserted();
    [id(DISPID_HTMLELEMENTEVENTS_ONCELLCHANGE)] void oncellchange();
    [id(DISPID_HTMLELEMENTEVENTS_ONREADYSTATECHANGE)] void onreadystatechange();
    [id(DISPID_HTMLELEMENTEVENTS_ONBEFOREEDITFOCUS)] void onbeforeeditfocus();
    [id(DISPID_HTMLSTYLEELEMENTEVENTS_ONLOAD)] void onload();
    [id(DISPID_HTMLSTYLEELEMENTEVENTS_ONERROR)] void onerror();
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f375-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLStyleElement : IDispatch
{
    [propput, id(DISPID_IHTMLSTYLEELEMENT_TYPE), displaybind, bindable] HRESULT type([in] BSTR v);
    [propget, id(DISPID_IHTMLSTYLEELEMENT_TYPE), displaybind, bindable] HRESULT type([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLSTYLEELEMENT_READYSTATE)] HRESULT readyState([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLSTYLEELEMENT_ONREADYSTATECHANGE), displaybind, bindable] HRESULT onreadystatechange([in] VARIANT v);
    [propget, id(DISPID_IHTMLSTYLEELEMENT_ONREADYSTATECHANGE), displaybind, bindable] HRESULT onreadystatechange([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLSTYLEELEMENT_ONLOAD), displaybind, bindable] HRESULT onload([in] VARIANT v);
    [propget, id(DISPID_IHTMLSTYLEELEMENT_ONLOAD), displaybind, bindable] HRESULT onload([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLSTYLEELEMENT_ONERROR), displaybind, bindable] HRESULT onerror([in] VARIANT v);
    [propget, id(DISPID_IHTMLSTYLEELEMENT_ONERROR), displaybind, bindable] HRESULT onerror([retval, out] VARIANT * p);
    [propget, id(DISPID_IHTMLSTYLEELEMENT_STYLESHEET)] HRESULT styleSheet([retval, out] IHTMLStyleSheet* * p);
    [propput, id(DISPID_IHTMLSTYLEELEMENT_DISABLED), displaybind, bindable] HRESULT disabled([in] VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLSTYLEELEMENT_DISABLED), displaybind, bindable] HRESULT disabled([retval, out] VARIANT_BOOL * p);
    [propput, id(DISPID_IHTMLSTYLEELEMENT_MEDIA), displaybind, bindable] HRESULT media([in] BSTR v);
    [propget, id(DISPID_IHTMLSTYLEELEMENT_MEDIA), displaybind, bindable] HRESULT media([retval, out] BSTR * p);
};
[
    hidden,
    uuid(3050f511-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTMLStyleElement
{
properties:
methods:
    [id(DISPID_IHTMLELEMENT_SETATTRIBUTE)] void setAttribute([in] BSTR strAttributeName,[in] VARIANT AttributeValue,[defaultvalue(1), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_GETATTRIBUTE)] VARIANT getAttribute([in] BSTR strAttributeName,[defaultvalue(0), in] LONG lFlags);
    [id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)] VARIANT_BOOL removeAttribute([in] BSTR strAttributeName,[defaultvalue(1), in] LONG lFlags);
    [propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] void className(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] BSTR className();
    [propput, id(DISPID_IHTMLELEMENT_ID), bindable] void id(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_ID), bindable] BSTR id();
    [propget, id(DISPID_IHTMLELEMENT_TAGNAME)] BSTR tagName();
    [propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)] IHTMLElement* parentElement();
    [propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable] IHTMLStyle* style();
    [propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] void onhelp(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] VARIANT onhelp();
    [propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] void onclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] VARIANT onclick();
    [propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] void ondblclick(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] VARIANT ondblclick();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] void onkeydown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] VARIANT onkeydown();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] void onkeyup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] VARIANT onkeyup();
    [propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] void onkeypress(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] VARIANT onkeypress();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] void onmouseout(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] VARIANT onmouseout();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] void onmouseover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] VARIANT onmouseover();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] void onmousemove(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] VARIANT onmousemove();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] void onmousedown(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] VARIANT onmousedown();
    [propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] void onmouseup(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] VARIANT onmouseup();
    [propget, id(DISPID_IHTMLELEMENT_DOCUMENT)] IDispatch* document();
    [propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] void title(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] BSTR title();
    [propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] void language(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] BSTR language();
    [propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] void onselectstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] VARIANT onselectstart();
    [id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)] void scrollIntoView([optional, in] VARIANT varargStart);
    [id(DISPID_IHTMLELEMENT_CONTAINS)] VARIANT_BOOL contains([in] IHTMLElement* pChild);
    [propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable] long sourceIndex();
    [propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)] VARIANT recordNumber();
    [propput, id(DISPID_IHTMLELEMENT_LANG)] void lang(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_LANG)] BSTR lang();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)] long offsetLeft();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)] long offsetTop();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)] long offsetWidth();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)] long offsetHeight();
    [propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)] IHTMLElement* offsetParent();
    [propput, id(DISPID_IHTMLELEMENT_INNERHTML)] void innerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERHTML)] BSTR innerHTML();
    [propput, id(DISPID_IHTMLELEMENT_INNERTEXT)] void innerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_INNERTEXT)] BSTR innerText();
    [propput, id(DISPID_IHTMLELEMENT_OUTERHTML)] void outerHTML(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERHTML)] BSTR outerHTML();
    [propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)] void outerText(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)] BSTR outerText();
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)] void insertAdjacentHTML([in] BSTR where,[in] BSTR html);
    [id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)] void insertAdjacentText([in] BSTR where,[in] BSTR text);
    [propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)] IHTMLElement* parentTextEdit();
    [propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)] VARIANT_BOOL isTextEdit();
    [id(DISPID_IHTMLELEMENT_CLICK)] void click();
    [propget, id(DISPID_IHTMLELEMENT_FILTERS)] IHTMLFiltersCollection* filters();
    [propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] void ondragstart(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] VARIANT ondragstart();
    [id(DISPID_IHTMLELEMENT_TOSTRING)] BSTR toString();
    [propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] void onbeforeupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] VARIANT onbeforeupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] void onafterupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] VARIANT onafterupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] void onerrorupdate(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] VARIANT onerrorupdate();
    [propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] void onrowexit(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] VARIANT onrowexit();
    [propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] void onrowenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] VARIANT onrowenter();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] void ondatasetchanged(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] VARIANT ondatasetchanged();
    [propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] void ondataavailable(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] VARIANT ondataavailable();
    [propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] void ondatasetcomplete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] VARIANT ondatasetcomplete();
    [propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] void onfilterchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] VARIANT onfilterchange();
    [propget, id(DISPID_IHTMLELEMENT_CHILDREN)] IDispatch* children();
    [propget, id(DISPID_IHTMLELEMENT_ALL)] IDispatch* all();
    [propget, id(DISPID_IHTMLELEMENT2_SCOPENAME)] BSTR scopeName();
    [id(DISPID_IHTMLELEMENT2_SETCAPTURE)] void setCapture([defaultvalue(-1), in] VARIANT_BOOL containerCapture);
    [id(DISPID_IHTMLELEMENT2_RELEASECAPTURE)] void releaseCapture();
    [propput, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] void onlosecapture(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONLOSECAPTURE), displaybind, bindable] VARIANT onlosecapture();
    [id(DISPID_IHTMLELEMENT2_COMPONENTFROMPOINT)] BSTR componentFromPoint([in] long x,[in] long y);
    [id(DISPID_IHTMLELEMENT2_DOSCROLL)] void doScroll([optional, in] VARIANT component);
    [propput, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] void onscroll(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONSCROLL), displaybind, bindable] VARIANT onscroll();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] void ondrag(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAG), displaybind, bindable] VARIANT ondrag();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] void ondragend(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGEND), displaybind, bindable] VARIANT ondragend();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] void ondragenter(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGENTER), displaybind, bindable] VARIANT ondragenter();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] void ondragover(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGOVER), displaybind, bindable] VARIANT ondragover();
    [propput, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] void ondragleave(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDRAGLEAVE), displaybind, bindable] VARIANT ondragleave();
    [propput, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] void ondrop(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONDROP), displaybind, bindable] VARIANT ondrop();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] void onbeforecut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECUT), displaybind, bindable] VARIANT onbeforecut();
    [propput, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] void oncut(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCUT), displaybind, bindable] VARIANT oncut();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] void onbeforecopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFORECOPY), displaybind, bindable] VARIANT onbeforecopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] void oncopy(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCOPY), displaybind, bindable] VARIANT oncopy();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] void onbeforepaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREPASTE), displaybind, bindable] VARIANT onbeforepaste();
    [propput, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] void onpaste(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPASTE), displaybind, bindable] VARIANT onpaste();
    [propget, id(DISPID_IHTMLELEMENT2_CURRENTSTYLE), nonbrowsable] IHTMLCurrentStyle* currentStyle();
    [propput, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] void onpropertychange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONPROPERTYCHANGE), displaybind, bindable] VARIANT onpropertychange();
    [id(DISPID_IHTMLELEMENT2_GETCLIENTRECTS)] IHTMLRectCollection* getClientRects();
    [id(DISPID_IHTMLELEMENT2_GETBOUNDINGCLIENTRECT)] IHTMLRect* getBoundingClientRect();
    [id(DISPID_IHTMLELEMENT2_SETEXPRESSION)] void setExpression([in] BSTR propname,[in] BSTR expression,[defaultvalue(""), in] BSTR language);
    [id(DISPID_IHTMLELEMENT2_GETEXPRESSION)] VARIANT getExpression([in] BSTR propname);
    [id(DISPID_IHTMLELEMENT2_REMOVEEXPRESSION)] VARIANT_BOOL removeExpression([in] BSTR propname);
    [propput, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] void tabIndex(short v);
    [propget, id(DISPID_IHTMLELEMENT2_TABINDEX), displaybind, bindable] short tabIndex();
    [id(DISPID_IHTMLELEMENT2_FOCUS)] void focus();
    [propput, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] void accessKey(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_ACCESSKEY), displaybind, bindable] BSTR accessKey();
    [propput, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] void onblur(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBLUR), displaybind, bindable] VARIANT onblur();
    [propput, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] void onfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONFOCUS), displaybind, bindable] VARIANT onfocus();
    [propput, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] void onresize(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONRESIZE), displaybind, bindable] VARIANT onresize();
    [id(DISPID_IHTMLELEMENT2_BLUR)] void blur();
    [id(DISPID_IHTMLELEMENT2_ADDFILTER)] void addFilter([in] IUnknown* pUnk);
    [id(DISPID_IHTMLELEMENT2_REMOVEFILTER)] void removeFilter([in] IUnknown* pUnk);
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTHEIGHT), displaybind, bindable] long clientHeight();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTWIDTH), displaybind, bindable] long clientWidth();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTTOP), displaybind, bindable] long clientTop();
    [propget, id(DISPID_IHTMLELEMENT2_CLIENTLEFT), displaybind, bindable] long clientLeft();
    [id(DISPID_IHTMLELEMENT2_ATTACHEVENT)] VARIANT_BOOL attachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [id(DISPID_IHTMLELEMENT2_DETACHEVENT)] void detachEvent([in] BSTR event,[in] IDispatch* pDisp);
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATE)] VARIANT readyState();
    [propput, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] void onreadystatechange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONREADYSTATECHANGE), displaybind, bindable] VARIANT onreadystatechange();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] void onrowsdelete(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSDELETE), displaybind, bindable] VARIANT onrowsdelete();
    [propput, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] void onrowsinserted(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONROWSINSERTED), displaybind, bindable] VARIANT onrowsinserted();
    [propput, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] void oncellchange(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCELLCHANGE), displaybind, bindable] VARIANT oncellchange();
    [propput, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] void dir(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_DIR), displaybind, bindable] BSTR dir();
    [id(DISPID_IHTMLELEMENT2_CREATECONTROLRANGE)] IDispatch* createControlRange();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLHEIGHT), displaybind, bindable] long scrollHeight();
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLWIDTH), displaybind, bindable] long scrollWidth();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] void scrollTop(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLTOP), displaybind, bindable] long scrollTop();
    [propput, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] void scrollLeft(long v);
    [propget, id(DISPID_IHTMLELEMENT2_SCROLLLEFT), displaybind, bindable] long scrollLeft();
    [id(DISPID_IHTMLELEMENT2_CLEARATTRIBUTES)] void clearAttributes();
    [id(DISPID_IHTMLELEMENT2_MERGEATTRIBUTES)] void mergeAttributes([in] IHTMLElement* mergeThis);
    [propput, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] void oncontextmenu(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONCONTEXTMENU), displaybind, bindable] VARIANT oncontextmenu();
    [id(DISPID_IHTMLELEMENT2_INSERTADJACENTELEMENT)] IHTMLElement* insertAdjacentElement([in] BSTR where,[in] IHTMLElement* insertedElement);
    [id(DISPID_IHTMLELEMENT2_APPLYELEMENT)] IHTMLElement* applyElement([in] IHTMLElement* apply,[in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_GETADJACENTTEXT)] BSTR getAdjacentText([in] BSTR where);
    [id(DISPID_IHTMLELEMENT2_REPLACEADJACENTTEXT)] BSTR replaceAdjacentText([in] BSTR where,[in] BSTR newText);
    [propget, id(DISPID_IHTMLELEMENT2_CANHAVECHILDREN)] VARIANT_BOOL canHaveChildren();
    [id(DISPID_IHTMLELEMENT2_ADDBEHAVIOR)] long addBehavior([in] BSTR bstrUrl,[optional, in] VARIANT* pvarFactory);
    [id(DISPID_IHTMLELEMENT2_REMOVEBEHAVIOR)] VARIANT_BOOL removeBehavior([in] long cookie);
    [propget, id(DISPID_IHTMLELEMENT2_RUNTIMESTYLE), nonbrowsable] IHTMLStyle* runtimeStyle();
    [propget, id(DISPID_IHTMLELEMENT2_BEHAVIORURNS)] IDispatch* behaviorUrns();
    [propput, id(DISPID_IHTMLELEMENT2_TAGURN)] void tagUrn(BSTR v);
    [propget, id(DISPID_IHTMLELEMENT2_TAGURN)] BSTR tagUrn();
    [propput, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] void onbeforeeditfocus(VARIANT v);
    [propget, id(DISPID_IHTMLELEMENT2_ONBEFOREEDITFOCUS), displaybind, bindable] VARIANT onbeforeeditfocus();
    [propget, id(DISPID_IHTMLELEMENT2_READYSTATEVALUE), hidden, restricted] long readyStateValue();
    [id(DISPID_IHTMLELEMENT2_GETELEMENTSBYTAGNAME)] IHTMLElementCollection* getElementsByTagName([in] BSTR v);
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUENUMBER), hidden] long uniqueNumber();
    [propget, id(DISPID_IHTMLUNIQUENAME_UNIQUEID), hidden] BSTR uniqueID();
    [propget, id(DISPID_IHTMLDOMNODE_NODETYPE)] long nodeType();
    [propget, id(DISPID_IHTMLDOMNODE_PARENTNODE)] IHTMLDOMNode* parentNode();
    [id(DISPID_IHTMLDOMNODE_HASCHILDNODES)] VARIANT_BOOL hasChildNodes();
    [propget, id(DISPID_IHTMLDOMNODE_CHILDNODES)] IDispatch* childNodes();
    [propget, id(DISPID_IHTMLDOMNODE_ATTRIBUTES)] IDispatch* attributes();
    [id(DISPID_IHTMLDOMNODE_INSERTBEFORE)] IHTMLDOMNode* insertBefore([in] IHTMLDOMNode* newChild,[optional, in] VARIANT refChild);
    [id(DISPID_IHTMLDOMNODE_REMOVECHILD)] IHTMLDOMNode* removeChild([in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_REPLACECHILD)] IHTMLDOMNode* replaceChild([in] IHTMLDOMNode* newChild,[in] IHTMLDOMNode* oldChild);
    [id(DISPID_IHTMLDOMNODE_CLONENODE)] IHTMLDOMNode* cloneNode([in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_REMOVENODE)] IHTMLDOMNode* removeNode([defaultvalue(0), in] VARIANT_BOOL fDeep);
    [id(DISPID_IHTMLDOMNODE_SWAPNODE)] IHTMLDOMNode* swapNode([in] IHTMLDOMNode* otherNode);
    [id(DISPID_IHTMLDOMNODE_REPLACENODE)] IHTMLDOMNode* replaceNode([in] IHTMLDOMNode* replacement);
    [id(DISPID_IHTMLDOMNODE_APPENDCHILD)] IHTMLDOMNode* appendChild([in] IHTMLDOMNode* newChild);
    [propget, id(DISPID_IHTMLDOMNODE_NODENAME)] BSTR nodeName();
    [propput, id(DISPID_IHTMLDOMNODE_NODEVALUE)] void nodeValue(VARIANT v);
    [propget, id(DISPID_IHTMLDOMNODE_NODEVALUE)] VARIANT nodeValue();
    [propget, id(DISPID_IHTMLDOMNODE_FIRSTCHILD)] IHTMLDOMNode* firstChild();
    [propget, id(DISPID_IHTMLDOMNODE_LASTCHILD)] IHTMLDOMNode* lastChild();
    [propget, id(DISPID_IHTMLDOMNODE_PREVIOUSSIBLING)] IHTMLDOMNode* previousSibling();
    [propget, id(DISPID_IHTMLDOMNODE_NEXTSIBLING)] IHTMLDOMNode* nextSibling();
    [propput, id(DISPID_IHTMLSTYLEELEMENT_TYPE), displaybind, bindable] void type(BSTR v);
    [propget, id(DISPID_IHTMLSTYLEELEMENT_TYPE), displaybind, bindable] BSTR type();
    [propput, id(DISPID_IHTMLSTYLEELEMENT_ONLOAD), displaybind, bindable] void onload(VARIANT v);
    [propget, id(DISPID_IHTMLSTYLEELEMENT_ONLOAD), displaybind, bindable] VARIANT onload();
    [propput, id(DISPID_IHTMLSTYLEELEMENT_ONERROR), displaybind, bindable] void onerror(VARIANT v);
    [propget, id(DISPID_IHTMLSTYLEELEMENT_ONERROR), displaybind, bindable] VARIANT onerror();
    [propget, id(DISPID_IHTMLSTYLEELEMENT_STYLESHEET)] IHTMLStyleSheet* styleSheet();
    [propput, id(DISPID_IHTMLSTYLEELEMENT_DISABLED), displaybind, bindable] void disabled(VARIANT_BOOL v);
    [propget, id(DISPID_IHTMLSTYLEELEMENT_DISABLED), displaybind, bindable] VARIANT_BOOL disabled();
    [propput, id(DISPID_IHTMLSTYLEELEMENT_MEDIA), displaybind, bindable] void media(BSTR v);
    [propget, id(DISPID_IHTMLSTYLEELEMENT_MEDIA), displaybind, bindable] BSTR media();
};
[
    uuid(3050f37d-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLStyleElement
{
    [default]           dispinterface DispHTMLStyleElement;
    [source, default]   dispinterface HTMLStyleElementEvents;
    [source]            dispinterface HTMLStyleElementEvents2;
                        interface IHTMLElement;
                        interface IHTMLElement2;
                        interface IHTMLUniqueName;
                        interface IHTMLDOMNode;
                        interface IHTMLStyleElement;
};
cpp_quote("EXTERN_C const GUID CLSID_CStyleElement;")
[
    odl,
    oleautomation,
    dual,
    uuid(3050f3d5-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLStyleFontFace : IDispatch
{
    [propput, id(DISPID_IHTMLSTYLEFONTFACE_FONTSRC), displaybind, bindable] HRESULT fontsrc([in] BSTR v);
    [propget, id(DISPID_IHTMLSTYLEFONTFACE_FONTSRC), displaybind, bindable] HRESULT fontsrc([retval, out] BSTR * p);
};
[
    uuid(3050f3d4-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLStyleFontFace
{
    [default]           interface IHTMLStyleFontFace;
};
cpp_quote("EXTERN_C const GUID CLSID_CFontFace;")
typedef enum _SECUREURLHOSTVALIDATE_FLAGS
{
    SUHV_PROMPTBEFORENO = 0x00000001,
    SUHV_SILENTYES = 0x00000002,
    SUHV_UNSECURESOURCE = 0x00000004,
    SECUREURLHOSTVALIDATE_FLAGS_Max = 2147483647L
} SECUREURLHOSTVALIDATE_FLAGS;

typedef enum _POINTER_GRAVITY
{
    POINTER_GRAVITY_Left = 0,
    POINTER_GRAVITY_Right = 1,
    POINTER_GRAVITY_Max = 2147483647L
} POINTER_GRAVITY;

typedef enum _ELEMENT_ADJACENCY
{
    ELEM_ADJ_BeforeBegin = 0,
    ELEM_ADJ_AfterBegin = 1,
    ELEM_ADJ_BeforeEnd = 2,
    ELEM_ADJ_AfterEnd = 3,
    ELEMENT_ADJACENCY_Max = 2147483647L
} ELEMENT_ADJACENCY;

typedef enum _MARKUP_CONTEXT_TYPE
{
    CONTEXT_TYPE_None = 0,
    CONTEXT_TYPE_Text = 1,
    CONTEXT_TYPE_EnterScope = 2,
    CONTEXT_TYPE_ExitScope = 3,
    CONTEXT_TYPE_NoScope = 4,
    MARKUP_CONTEXT_TYPE_Max = 2147483647L
} MARKUP_CONTEXT_TYPE;

typedef enum _FINDTEXT_FLAGS
{
    FINDTEXT_BACKWARDS = 0x00000001,
    FINDTEXT_WHOLEWORD = 0x00000002,
    FINDTEXT_MATCHCASE = 0x00000004,
    FINDTEXT_RAW = 0x00020000,
    FINDTEXT_MATCHDIAC = 0x20000000,
    FINDTEXT_MATCHKASHIDA = 0x40000000,
    FINDTEXT_MATCHALEFHAMZA = 0x80000000,
    FINDTEXT_FLAGS_Max = 2147483647L
} FINDTEXT_FLAGS;

typedef enum _MOVEUNIT_ACTION
{
    MOVEUNIT_PREVCHAR = 0,
    MOVEUNIT_NEXTCHAR = 1,
    MOVEUNIT_PREVCLUSTERBEGIN = 2,
    MOVEUNIT_NEXTCLUSTERBEGIN = 3,
    MOVEUNIT_PREVCLUSTEREND = 4,
    MOVEUNIT_NEXTCLUSTEREND = 5,
    MOVEUNIT_PREVWORDBEGIN = 6,
    MOVEUNIT_NEXTWORDBEGIN = 7,
    MOVEUNIT_PREVWORDEND = 8,
    MOVEUNIT_NEXTWORDEND = 9,
    MOVEUNIT_PREVPROOFWORD = 10,
    MOVEUNIT_NEXTPROOFWORD = 11,
    MOVEUNIT_NEXTURLBEGIN = 12,
    MOVEUNIT_PREVURLBEGIN = 13,
    MOVEUNIT_NEXTURLEND = 14,
    MOVEUNIT_PREVURLEND = 15,
    MOVEUNIT_PREVSENTENCE = 16,
    MOVEUNIT_NEXTSENTENCE = 17,
    MOVEUNIT_PREVBLOCK = 18,
    MOVEUNIT_NEXTBLOCK = 19,
    MOVEUNIT_ACTION_Max = 2147483647L
} MOVEUNIT_ACTION;

typedef enum _PARSE_FLAGS
{
    PARSE_ABSOLUTIFYIE40URLS = 0x00000001,
    PARSE_FLAGS_Max = 2147483647L
} PARSE_FLAGS;

typedef enum _ELEMENT_TAG_ID
{
    TAGID_NULL = 0,
    TAGID_UNKNOWN = 1,
    TAGID_A = 2,
    TAGID_ACRONYM = 3,
    TAGID_ADDRESS = 4,
    TAGID_APPLET = 5,
    TAGID_AREA = 6,
    TAGID_B = 7,
    TAGID_BASE = 8,
    TAGID_BASEFONT = 9,
    TAGID_BDO = 10,
    TAGID_BGSOUND = 11,
    TAGID_BIG = 12,
    TAGID_BLINK = 13,
    TAGID_BLOCKQUOTE = 14,
    TAGID_BODY = 15,
    TAGID_BR = 16,
    TAGID_BUTTON = 17,
    TAGID_CAPTION = 18,
    TAGID_CENTER = 19,
    TAGID_CITE = 20,
    TAGID_CODE = 21,
    TAGID_COL = 22,
    TAGID_COLGROUP = 23,
    TAGID_COMMENT = 24,
    TAGID_COMMENT_RAW = 25,
    TAGID_DD = 26,
    TAGID_DEL = 27,
    TAGID_DFN = 28,
    TAGID_DIR = 29,
    TAGID_DIV = 30,
    TAGID_DL = 31,
    TAGID_DT = 32,
    TAGID_EM = 33,
    TAGID_EMBED = 34,
    TAGID_FIELDSET = 35,
    TAGID_FONT = 36,
    TAGID_FORM = 37,
    TAGID_FRAME = 38,
    TAGID_FRAMESET = 39,
    TAGID_GENERIC = 40,
    TAGID_H1 = 41,
    TAGID_H2 = 42,
    TAGID_H3 = 43,
    TAGID_H4 = 44,
    TAGID_H5 = 45,
    TAGID_H6 = 46,
    TAGID_HEAD = 47,
    TAGID_HR = 48,
    TAGID_HTML = 49,
    TAGID_I = 50,
    TAGID_IFRAME = 51,
    TAGID_IMG = 52,
    TAGID_INPUT = 53,
    TAGID_INS = 54,
    TAGID_KBD = 55,
    TAGID_LABEL = 56,
    TAGID_LEGEND = 57,
    TAGID_LI = 58,
    TAGID_LINK = 59,
    TAGID_LISTING = 60,
    TAGID_MAP = 61,
    TAGID_MARQUEE = 62,
    TAGID_MENU = 63,
    TAGID_META = 64,
    TAGID_NEXTID = 65,
    TAGID_NOBR = 66,
    TAGID_NOEMBED = 67,
    TAGID_NOFRAMES = 68,
    TAGID_NOSCRIPT = 69,
    TAGID_OBJECT = 70,
    TAGID_OL = 71,
    TAGID_OPTION = 72,
    TAGID_P = 73,
    TAGID_PARAM = 74,
    TAGID_PLAINTEXT = 75,
    TAGID_PRE = 76,
    TAGID_Q = 77,
    TAGID_RP = 78,
    TAGID_RT = 79,
    TAGID_RUBY = 80,
    TAGID_S = 81,
    TAGID_SAMP = 82,
    TAGID_SCRIPT = 83,
    TAGID_SELECT = 84,
    TAGID_SMALL = 85,
    TAGID_SPAN = 86,
    TAGID_STRIKE = 87,
    TAGID_STRONG = 88,
    TAGID_STYLE = 89,
    TAGID_SUB = 90,
    TAGID_SUP = 91,
    TAGID_TABLE = 92,
    TAGID_TBODY = 93,
    TAGID_TC = 94,
    TAGID_TD = 95,
    TAGID_TEXTAREA = 96,
    TAGID_TFOOT = 97,
    TAGID_TH = 98,
    TAGID_THEAD = 99,
    TAGID_TITLE = 100,
    TAGID_TR = 101,
    TAGID_TT = 102,
    TAGID_U = 103,
    TAGID_UL = 104,
    TAGID_VAR = 105,
    TAGID_WBR = 106,
    TAGID_XMP = 107,
    TAGID_COUNT = 108,
    TAGID_LAST_PREDEFINED = 10000,
    ELEMENT_TAG_ID_Max = 2147483647L
} ELEMENT_TAG_ID;

interface IElementBehaviorSite;
interface ICSSFilterSite;
interface IMarkupPointer;
interface IMarkupContainer;
interface IHTMLDocument2;
interface IActiveIMMApp;
[
    object,
    pointer_default(unique),
    uuid(3050f3ed-98b5-11cf-bb82-00aa00bdce0b)
]
interface ICSSFilterSite : IUnknown
{
    [] HRESULT GetElement([retval, out] IHTMLElement** Element);
    [] HRESULT FireOnFilterChangeEvent();
};
[
    object,
    pointer_default(unique),
    uuid(3050f3ec-98b5-11cf-bb82-00aa00bdce0b)
]
interface ICSSFilter : IUnknown
{
    [] HRESULT SetSite([in] ICSSFilterSite* pSink);
    [] HRESULT OnAmbientPropertyChange([in] LONG dispid);
};
[
    object,
    pointer_default(unique),
    uuid(c81984c4-74c8-11d2-baa9-00c04fc2040e)
]
interface ISecureUrlHost : IUnknown
{
    [] HRESULT ValidateSecureUrl([out] BOOL* pfAllow,[in] OLECHAR* pchUrlInQuestion,[in] DWORD dwFlags);
};
[
    object,
    pointer_default(unique),
    uuid(3050f4a0-98b5-11cf-bb82-00aa00bdce0b)
]
interface IMarkupServices : IUnknown
{
    [] HRESULT CreateMarkupPointer([out] IMarkupPointer** ppPointer);
    [] HRESULT CreateMarkupContainer([out] IMarkupContainer** ppMarkupContainer);
    [] HRESULT CreateElement([in] ELEMENT_TAG_ID tagID,[in] OLECHAR* pchAttributes,[out] IHTMLElement** ppElement);
    [] HRESULT CloneElement([in] IHTMLElement* pElemCloneThis,[out] IHTMLElement** ppElementTheClone);
    [] HRESULT InsertElement([in] IHTMLElement* pElementInsert,[in] IMarkupPointer* pPointerStart,[in] IMarkupPointer* pPointerFinish);
    [] HRESULT RemoveElement([in] IHTMLElement* pElementRemove);
    [] HRESULT Remove([in] IMarkupPointer* pPointerStart,[in] IMarkupPointer* pPointerFinish);
    [] HRESULT Copy([in] IMarkupPointer* pPointerSourceStart,[in] IMarkupPointer* pPointerSourceFinish,[in] IMarkupPointer* pPointerTarget);
    [] HRESULT Move([in] IMarkupPointer* pPointerSourceStart,[in] IMarkupPointer* pPointerSourceFinish,[in] IMarkupPointer* pPointerTarget);
    [] HRESULT InsertText([in] OLECHAR* pchText,[in] long cch,[in] IMarkupPointer* pPointerTarget);
    [] HRESULT ParseString([in] OLECHAR* pchHTML,[in] DWORD dwFlags,[out] IMarkupContainer** ppContainerResult,[in] IMarkupPointer* ppPointerStart,[in] IMarkupPointer* ppPointerFinish);
    [] HRESULT ParseGlobal([in] HGLOBAL hglobalHTML,[in] DWORD dwFlags,[out] IMarkupContainer** ppContainerResult,[in] IMarkupPointer* pPointerStart,[in] IMarkupPointer* pPointerFinish);
    [] HRESULT IsScopedElement([in] IHTMLElement* pElement,[out] BOOL* pfScoped);
    [] HRESULT GetElementTagId([in] IHTMLElement* pElement,[out] ELEMENT_TAG_ID* ptagId);
    [] HRESULT GetTagIDForName([in] BSTR bstrName,[out] ELEMENT_TAG_ID* ptagId);
    [] HRESULT GetNameForTagID([in] ELEMENT_TAG_ID tagId,[out] BSTR* pbstrName);
    [] HRESULT MovePointersToRange([in] IHTMLTxtRange* pIRange,[in] IMarkupPointer* pPointerStart,[in] IMarkupPointer* pPointerFinish);
    [] HRESULT MoveRangeToPointers([in] IMarkupPointer* pPointerStart,[in] IMarkupPointer* pPointerFinish,[in] IHTMLTxtRange* pIRange);
    [] HRESULT BeginUndoUnit([in] OLECHAR* pchTitle);
    [] HRESULT EndUndoUnit();
};
[
    object,
    pointer_default(unique),
    uuid(3050f5f9-98b5-11cf-bb82-00aa00bdce0b)
]
interface IMarkupContainer : IUnknown
{
    [] HRESULT OwningDoc([out] IHTMLDocument2** ppDoc);
};
[
    object,
    pointer_default(unique),
    uuid(3050f49f-98b5-11cf-bb82-00aa00bdce0b)
]
interface IMarkupPointer : IUnknown
{
    [] HRESULT OwningDoc([out] IHTMLDocument2** ppDoc);
    [] HRESULT Gravity([out] POINTER_GRAVITY* pGravity);
    [] HRESULT SetGravity([in] POINTER_GRAVITY Gravity);
    [] HRESULT Cling([out] BOOL* pfCling);
    [] HRESULT SetCling([in] BOOL fCLing);
    [] HRESULT Unposition();
    [] HRESULT IsPositioned([out] BOOL* pfPositioned);
    [] HRESULT GetContainer([out] IMarkupContainer** ppContainer);
    [] HRESULT MoveAdjacentToElement([in] IHTMLElement* pElement,[in] ELEMENT_ADJACENCY eAdj);
    [] HRESULT MoveToPointer([in] IMarkupPointer* pPointer);
    [] HRESULT MoveToContainer([in] IMarkupContainer* pContainer,[in] BOOL fAtStart);
    [] HRESULT Left([in] BOOL fMove,[out] MARKUP_CONTEXT_TYPE* pContext,[out] IHTMLElement** ppElement,[in, out] long* pcch,[out] OLECHAR* pchText);
    [] HRESULT Right([in] BOOL fMove,[out] MARKUP_CONTEXT_TYPE* pContext,[out] IHTMLElement** ppElement,[in, out] long* pcch,[out] OLECHAR* pchText);
    [] HRESULT CurrentScope([out] IHTMLElement** ppElemCurrent);
    [] HRESULT IsLeftOf([in] IMarkupPointer* pPointerThat,[out] BOOL* pfResult);
    [] HRESULT IsLeftOfOrEqualTo([in] IMarkupPointer* pPointerThat,[out] BOOL* pfResult);
    [] HRESULT IsRightOf([in] IMarkupPointer* pPointerThat,[out] BOOL* pfResult);
    [] HRESULT IsRightOfOrEqualTo([in] IMarkupPointer* pPointerThat,[out] BOOL* pfResult);
    [] HRESULT IsEqualTo([in] IMarkupPointer* pPointerThat,[out] BOOL* pfAreEqual);
    [] HRESULT MoveUnit([in] MOVEUNIT_ACTION muAction);
    [] HRESULT FindText([in] OLECHAR* pchFindText,[in] DWORD dwFlags,[in] IMarkupPointer* pIEndMatch,[in] IMarkupPointer* pIEndSearch);
};
[
    object,
    pointer_default(unique),
    uuid(3050f5fa-98b5-11cf-bb82-00aa00bdce0b)
]
interface IMarkupTextFrags : IUnknown
{
    [] HRESULT GetTextFragCount([out] long* pcFrags);
    [] HRESULT GetTextFrag([in] long iFrag,[out] BSTR* pbstrFrag,[in] IMarkupPointer* pPointerFrag);
    [] HRESULT RemoveTextFrag([in] long iFrag);
    [] HRESULT InsertTextFrag([in] long iFrag,[in] BSTR bstrInsert,[in] IMarkupPointer* pPointerInsert);
    [] HRESULT FindTextFragFromMarkupPointer([in] IMarkupPointer* pPointerFind,[out] long* piFrag,[out] BOOL* pfFragFound);
};
[
    object,
    pointer_default(unique),
    uuid(E4E23071-4D07-11d2-AE76-0080C73BC199)
]
interface IXMLGenericParse : IUnknown
{
    [] HRESULT SetGenericParse([in] VARIANT_BOOL fDoGeneric);
};
typedef enum _HTMLDlgFlag
{
    HTMLDlgFlagNo = 0,
    HTMLDlgFlagOff = 0,
    HTMLDlgFlag0 = 0,
    HTMLDlgFlagYes = 1,
    HTMLDlgFlagOn = 1,
    HTMLDlgFlag1 = 1,
    HTMLDlgFlagNotSet = -1,
    HTMLDlgFlag_Max = 2147483647L
} HTMLDlgFlag;

typedef enum _HTMLDlgBorder
{
    HTMLDlgBorderThin = 0,
    HTMLDlgBorderThick = 0x00040000L,
    HTMLDlgBorder_Max = 2147483647L
} HTMLDlgBorder;

typedef enum _HTMLDlgEdge
{
    HTMLDlgEdgeSunken = 0,
    HTMLDlgEdgeRaised = 16,
    HTMLDlgEdge_Max = 2147483647L
} HTMLDlgEdge;

typedef enum _HTMLDlgCenter
{
    HTMLDlgCenterNo = 0,
    HTMLDlgCenterOff = 0,
    HTMLDlgCenter0 = 0,
    HTMLDlgCenterYes = 1,
    HTMLDlgCenterOn = 1,
    HTMLDlgCenter1 = 1,
    HTMLDlgCenterParent = 1,
    HTMLDlgCenterDesktop = 2,
    HTMLDlgCenter_Max = 2147483647L
} HTMLDlgCenter;

[
    odl,
    oleautomation,
    dual,
    uuid(3050f216-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLDialog : IDispatch
{
    [propput, id(DISPID_IHTMLDIALOG_DIALOGTOP), bindable] HRESULT dialogTop([in] VARIANT v);
    [propget, id(DISPID_IHTMLDIALOG_DIALOGTOP), bindable] HRESULT dialogTop([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLDIALOG_DIALOGLEFT), bindable] HRESULT dialogLeft([in] VARIANT v);
    [propget, id(DISPID_IHTMLDIALOG_DIALOGLEFT), bindable] HRESULT dialogLeft([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLDIALOG_DIALOGWIDTH), bindable] HRESULT dialogWidth([in] VARIANT v);
    [propget, id(DISPID_IHTMLDIALOG_DIALOGWIDTH), bindable] HRESULT dialogWidth([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLDIALOG_DIALOGHEIGHT), bindable] HRESULT dialogHeight([in] VARIANT v);
    [propget, id(DISPID_IHTMLDIALOG_DIALOGHEIGHT), bindable] HRESULT dialogHeight([retval, out] VARIANT * p);
    [propget, id(DISPID_IHTMLDIALOG_DIALOGARGUMENTS)] HRESULT dialogArguments([retval, out] VARIANT * p);
    [propget, id(DISPID_IHTMLDIALOG_MENUARGUMENTS)] HRESULT menuArguments([retval, out] VARIANT * p);
    [propput, id(DISPID_IHTMLDIALOG_RETURNVALUE)] HRESULT returnValue([in] VARIANT v);
    [propget, id(DISPID_IHTMLDIALOG_RETURNVALUE)] HRESULT returnValue([retval, out] VARIANT * p);
    [id(DISPID_IHTMLDIALOG_CLOSE)] HRESULT close();
    [id(DISPID_IHTMLDIALOG_TOSTRING)] HRESULT toString([retval, out] BSTR* String);
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f5e0-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLDialog2 : IDispatch
{
    [propput, id(DISPID_IHTMLDIALOG2_STATUS), hidden] HRESULT status([in] BSTR v);
    [propget, id(DISPID_IHTMLDIALOG2_STATUS), hidden] HRESULT status([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLDIALOG2_RESIZABLE), hidden] HRESULT resizable([in] BSTR v);
    [propget, id(DISPID_IHTMLDIALOG2_RESIZABLE), hidden] HRESULT resizable([retval, out] BSTR * p);
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f5e4-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLModelessInit : IDispatch
{
    [propget, id(DISPID_IHTMLMODELESSINIT_PARAMETERS)] HRESULT parameters([retval, out] VARIANT * p);
    [propget, id(DISPID_IHTMLMODELESSINIT_OPTIONSTRING)] HRESULT optionString([retval, out] VARIANT * p);
    [propget, id(DISPID_IHTMLMODELESSINIT_MONIKER)] HRESULT moniker([retval, out] IUnknown* * p);
    [propget, id(DISPID_IHTMLMODELESSINIT_DOCUMENT)] HRESULT document([retval, out] IUnknown* * p);
};
[
    uuid(3050f5eb-98b5-11cf-bb82-00aa00bdce0b)
]
coclass ThreadDialogProcParam
{
    [default]           interface IHTMLModelessinit;
};
cpp_quote("EXTERN_C const GUID CLSID_CThreadDialogProcParam;")
[
    uuid(3050f28a-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLDialog
{
    [default]           interface IHTMLDialog;
};
cpp_quote("EXTERN_C const GUID CLSID_CHTMLDlg;")
typedef enum _HTMLAppFlag
{
    HTMLAppFlagNo = 0,
    HTMLAppFlagOff = 0,
    HTMLAppFlag0 = 0,
    HTMLAppFlagYes = 1,
    HTMLAppFlagOn = 1,
    HTMLAppFlag1 = 1,
    HTMLAppFlag_Max = 2147483647L
} HTMLAppFlag;

typedef enum _HTMLMinimizeFlag
{
    HTMLMinimizeFlagNo = 0,
    HTMLMinimizeFlagYes = 0x00020000L,
    HTMLMinimizeFlag_Max = 2147483647L
} HTMLMinimizeFlag;

typedef enum _HTMLMaximizeFlag
{
    HTMLMaximizeFlagNo = 0,
    HTMLMaximizeFlagYes = 0x00010000L,
    HTMLMaximizeFlag_Max = 2147483647L
} HTMLMaximizeFlag;

typedef enum _HTMLCaptionFlag
{
    HTMLCaptionFlagNo = 0,
    HTMLCaptionFlagYes = 0x00C00000L,
    HTMLCaptionFlag_Max = 2147483647L
} HTMLCaptionFlag;

typedef enum _HTMLSysMenuFlag
{
    HTMLSysMenuFlagNo = 0,
    HTMLSysMenuFlagYes = 0x00080000L,
    HTMLSysMenuFlag_Max = 2147483647L
} HTMLSysMenuFlag;

typedef enum _HTMLBorder
{
    HTMLBorderNone = 0,
    HTMLBorderThick = 0x00040000L,
    HTMLBorderDialog = 0x00400000L,
    HTMLBorderThin = 0x00800000L,
    HTMLBorder_Max = 2147483647L
} HTMLBorder;

typedef enum _HTMLBorderStyle
{
    HTMLBorderStyleNormal = 0,
    HTMLBorderStyleRaised = 0x00000100L,
    HTMLBorderStyleSunken = 0x00000200L,
    HTMLBorderStylecombined = 0x00000300L,
    HTMLBorderStyleStatic = 0x00020000L,
    HTMLBorderStyle_Max = 2147483647L
} HTMLBorderStyle;

typedef enum _HTMLWindowState
{
    HTMLWindowStateNormal = 1,
    HTMLWindowStateMaximize = 3,
    HTMLWindowStateMinimize = 6,
    HTMLWindowState_Max = 2147483647L
} HTMLWindowState;

[
    odl,
    oleautomation,
    dual,
    uuid(3050f5ca-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLAppBehavior : IDispatch
{
    [propput, id(DISPID_IHTMLAPPBEHAVIOR_APPLICATIONNAME)] HRESULT applicationName([in] BSTR v);
    [propget, id(DISPID_IHTMLAPPBEHAVIOR_APPLICATIONNAME)] HRESULT applicationName([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLAPPBEHAVIOR_VERSION)] HRESULT version([in] BSTR v);
    [propget, id(DISPID_IHTMLAPPBEHAVIOR_VERSION)] HRESULT version([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLAPPBEHAVIOR_ICON)] HRESULT icon([in] BSTR v);
    [propget, id(DISPID_IHTMLAPPBEHAVIOR_ICON)] HRESULT icon([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLAPPBEHAVIOR_SINGLEINSTANCE)] HRESULT singleInstance([in] BSTR v);
    [propget, id(DISPID_IHTMLAPPBEHAVIOR_SINGLEINSTANCE)] HRESULT singleInstance([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLAPPBEHAVIOR_MINIMIZEBUTTON)] HRESULT minimizeButton([in] BSTR v);
    [propget, id(DISPID_IHTMLAPPBEHAVIOR_MINIMIZEBUTTON)] HRESULT minimizeButton([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLAPPBEHAVIOR_MAXIMIZEBUTTON)] HRESULT maximizeButton([in] BSTR v);
    [propget, id(DISPID_IHTMLAPPBEHAVIOR_MAXIMIZEBUTTON)] HRESULT maximizeButton([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLAPPBEHAVIOR_BORDER)] HRESULT border([in] BSTR v);
    [propget, id(DISPID_IHTMLAPPBEHAVIOR_BORDER)] HRESULT border([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLAPPBEHAVIOR_BORDERSTYLE)] HRESULT borderStyle([in] BSTR v);
    [propget, id(DISPID_IHTMLAPPBEHAVIOR_BORDERSTYLE)] HRESULT borderStyle([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLAPPBEHAVIOR_SYSMENU)] HRESULT sysMenu([in] BSTR v);
    [propget, id(DISPID_IHTMLAPPBEHAVIOR_SYSMENU)] HRESULT sysMenu([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLAPPBEHAVIOR_CAPTION)] HRESULT caption([in] BSTR v);
    [propget, id(DISPID_IHTMLAPPBEHAVIOR_CAPTION)] HRESULT caption([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLAPPBEHAVIOR_WINDOWSTATE)] HRESULT windowState([in] BSTR v);
    [propget, id(DISPID_IHTMLAPPBEHAVIOR_WINDOWSTATE)] HRESULT windowState([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLAPPBEHAVIOR_SHOWINTASKBAR)] HRESULT showInTaskBar([in] BSTR v);
    [propget, id(DISPID_IHTMLAPPBEHAVIOR_SHOWINTASKBAR)] HRESULT showInTaskBar([retval, out] BSTR * p);
    [propget, id(DISPID_IHTMLAPPBEHAVIOR_COMMANDLINE)] HRESULT commandLine([retval, out] BSTR * p);
};
[
    odl,
    oleautomation,
    dual,
    uuid(3050f5c9-98b5-11cf-bb82-00aa00bdce0b)
]
interface IHTMLAppBehavior2 : IDispatch
{
    [propput, id(DISPID_IHTMLAPPBEHAVIOR2_CONTEXTMENU)] HRESULT contextMenu([in] BSTR v);
    [propget, id(DISPID_IHTMLAPPBEHAVIOR2_CONTEXTMENU)] HRESULT contextMenu([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLAPPBEHAVIOR2_INNERBORDER)] HRESULT innerBorder([in] BSTR v);
    [propget, id(DISPID_IHTMLAPPBEHAVIOR2_INNERBORDER)] HRESULT innerBorder([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLAPPBEHAVIOR2_SCROLL)] HRESULT scroll([in] BSTR v);
    [propget, id(DISPID_IHTMLAPPBEHAVIOR2_SCROLL)] HRESULT scroll([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLAPPBEHAVIOR2_SCROLLFLAT)] HRESULT scrollFlat([in] BSTR v);
    [propget, id(DISPID_IHTMLAPPBEHAVIOR2_SCROLLFLAT)] HRESULT scrollFlat([retval, out] BSTR * p);
    [propput, id(DISPID_IHTMLAPPBEHAVIOR2_SELECTION)] HRESULT selection([in] BSTR v);
    [propget, id(DISPID_IHTMLAPPBEHAVIOR2_SELECTION)] HRESULT selection([retval, out] BSTR * p);
};
[
    hidden,
    uuid(3050f57c-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispHTMLAppBehavior
{
properties:
methods:
    [propput, id(DISPID_IHTMLAPPBEHAVIOR_APPLICATIONNAME)] void applicationName(BSTR v);
    [propget, id(DISPID_IHTMLAPPBEHAVIOR_APPLICATIONNAME)] BSTR applicationName();
    [propput, id(DISPID_IHTMLAPPBEHAVIOR_VERSION)] void version(BSTR v);
    [propget, id(DISPID_IHTMLAPPBEHAVIOR_VERSION)] BSTR version();
    [propput, id(DISPID_IHTMLAPPBEHAVIOR_ICON)] void icon(BSTR v);
    [propget, id(DISPID_IHTMLAPPBEHAVIOR_ICON)] BSTR icon();
    [propput, id(DISPID_IHTMLAPPBEHAVIOR_SINGLEINSTANCE)] void singleInstance(BSTR v);
    [propget, id(DISPID_IHTMLAPPBEHAVIOR_SINGLEINSTANCE)] BSTR singleInstance();
    [propput, id(DISPID_IHTMLAPPBEHAVIOR_MINIMIZEBUTTON)] void minimizeButton(BSTR v);
    [propget, id(DISPID_IHTMLAPPBEHAVIOR_MINIMIZEBUTTON)] BSTR minimizeButton();
    [propput, id(DISPID_IHTMLAPPBEHAVIOR_MAXIMIZEBUTTON)] void maximizeButton(BSTR v);
    [propget, id(DISPID_IHTMLAPPBEHAVIOR_MAXIMIZEBUTTON)] BSTR maximizeButton();
    [propput, id(DISPID_IHTMLAPPBEHAVIOR_BORDER)] void border(BSTR v);
    [propget, id(DISPID_IHTMLAPPBEHAVIOR_BORDER)] BSTR border();
    [propput, id(DISPID_IHTMLAPPBEHAVIOR_BORDERSTYLE)] void borderStyle(BSTR v);
    [propget, id(DISPID_IHTMLAPPBEHAVIOR_BORDERSTYLE)] BSTR borderStyle();
    [propput, id(DISPID_IHTMLAPPBEHAVIOR_SYSMENU)] void sysMenu(BSTR v);
    [propget, id(DISPID_IHTMLAPPBEHAVIOR_SYSMENU)] BSTR sysMenu();
    [propput, id(DISPID_IHTMLAPPBEHAVIOR_CAPTION)] void caption(BSTR v);
    [propget, id(DISPID_IHTMLAPPBEHAVIOR_CAPTION)] BSTR caption();
    [propput, id(DISPID_IHTMLAPPBEHAVIOR_WINDOWSTATE)] void windowState(BSTR v);
    [propget, id(DISPID_IHTMLAPPBEHAVIOR_WINDOWSTATE)] BSTR windowState();
    [propput, id(DISPID_IHTMLAPPBEHAVIOR_SHOWINTASKBAR)] void showInTaskBar(BSTR v);
    [propget, id(DISPID_IHTMLAPPBEHAVIOR_SHOWINTASKBAR)] BSTR showInTaskBar();
    [propget, id(DISPID_IHTMLAPPBEHAVIOR_COMMANDLINE)] BSTR commandLine();
    [propput, id(DISPID_IHTMLAPPBEHAVIOR2_CONTEXTMENU)] void contextMenu(BSTR v);
    [propget, id(DISPID_IHTMLAPPBEHAVIOR2_CONTEXTMENU)] BSTR contextMenu();
    [propput, id(DISPID_IHTMLAPPBEHAVIOR2_INNERBORDER)] void innerBorder(BSTR v);
    [propget, id(DISPID_IHTMLAPPBEHAVIOR2_INNERBORDER)] BSTR innerBorder();
    [propput, id(DISPID_IHTMLAPPBEHAVIOR2_SCROLL)] void scroll(BSTR v);
    [propget, id(DISPID_IHTMLAPPBEHAVIOR2_SCROLL)] BSTR scroll();
    [propput, id(DISPID_IHTMLAPPBEHAVIOR2_SCROLLFLAT)] void scrollFlat(BSTR v);
    [propget, id(DISPID_IHTMLAPPBEHAVIOR2_SCROLLFLAT)] BSTR scrollFlat();
    [propput, id(DISPID_IHTMLAPPBEHAVIOR2_SELECTION)] void selection(BSTR v);
    [propget, id(DISPID_IHTMLAPPBEHAVIOR2_SELECTION)] BSTR selection();
};
[
    uuid(3050f5cb-98b5-11cf-bb82-00aa00bdce0b)
]
coclass HTMLAppBehavior
{
    [default]           dispinterface DispHTMLAppBehavior;
                        interface IHTMLAppBehavior;
                        interface IHTMLAppBehavior2;
};
cpp_quote("EXTERN_C const GUID CLSID_CAppBehavior;")

//
// Workaround for IE3 Scripting Wizard - relies on seeing these coclass GUIDS
//

[uuid(D48A6EC9-6A4A-11CF-94A7-444553540000)]
coclass OldHTMLDocument
{
	[default]			dispinterface DispHTMLDocument;
	[source, default]	dispinterface HTMLDocumentEvents;
						interface IHTMLDocument2;
						interface IHTMLDocument3;
};

//
// Workaround for IE3 Scripting Wizard - relies on seeing these coclass GUIDS
//

[uuid(0D04D285-6BEC-11CF-8B97-00AA00476DA6)]
coclass OldHTMLFormElement
{
	[default]			dispinterface DispHTMLFormElement;
	[source, default]	dispinterface HTMLFormElementEvents;
						interface IHTMLFormElement;
						interface IHTMLElement;
						interface IHTMLElement2;
};

// the following 5 coclasses and dispinterfaces are needed for backward compatability,
// now that in IE5 all the input elements have been amalgamated into one. VID uses these
// DispIHTMLInputButtonElement,
// DispIHTMLInputTextElement,
// DispIHTMLInputFileElement,
// DispIHTMLOptionButtonElement,
// DispIHTMLInputImage
[
	hidden,
	uuid(3050f51e-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispIHTMLInputButtonElement
{
properties:
methods:
	[id(DISPID_IHTMLELEMENT_SETATTRIBUTE)] void setAttribute([in] BSTR strAttributeName,[in] VARIANT AttributeValue,[defaultvalue(1), in] LONG lFlags);
	[id(DISPID_IHTMLELEMENT_GETATTRIBUTE)] VARIANT getAttribute([in] BSTR strAttributeName,[defaultvalue(0), in] LONG lFlags);
	[id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)] VARIANT_BOOL removeAttribute([in] BSTR strAttributeName,[defaultvalue(1), in] LONG lFlags);
	[propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] void className(BSTR v);
	[propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] BSTR className();
	[propput, id(DISPID_IHTMLELEMENT_ID), bindable] void id(BSTR v);
	[propget, id(DISPID_IHTMLELEMENT_ID), bindable] BSTR id();
	[propget, id(DISPID_IHTMLELEMENT_TAGNAME)] BSTR tagName();
	[propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)] IHTMLElement* parentElement();
	[propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable] IHTMLStyle* style();
	[propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] void onhelp(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] VARIANT onhelp();
	[propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] void onclick(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] VARIANT onclick();
	[propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] void ondblclick(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] VARIANT ondblclick();
	[propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] void onkeydown(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] VARIANT onkeydown();
	[propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] void onkeyup(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] VARIANT onkeyup();
	[propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] void onkeypress(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] VARIANT onkeypress();
	[propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] void onmouseout(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] VARIANT onmouseout();
	[propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] void onmouseover(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] VARIANT onmouseover();
	[propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] void onmousemove(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] VARIANT onmousemove();
	[propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] void onmousedown(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] VARIANT onmousedown();
	[propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] void onmouseup(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] VARIANT onmouseup();
	[propget, id(DISPID_IHTMLELEMENT_DOCUMENT)] IDispatch* document();
	[propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] void title(BSTR v);
	[propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] BSTR title();
	[propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] void language(BSTR v);
	[propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] BSTR language();
	[propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] void onselectstart(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] VARIANT onselectstart();
	[id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)] void scrollIntoView([optional, in] VARIANT varargStart);
	[id(DISPID_IHTMLELEMENT_CONTAINS)] VARIANT_BOOL contains([in] IHTMLElement* pChild);
	[propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable] long sourceIndex();
	[propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)] VARIANT recordNumber();
	[propput, id(DISPID_IHTMLELEMENT_LANG)] void lang(BSTR v);
	[propget, id(DISPID_IHTMLELEMENT_LANG)] BSTR lang();
	[propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)] long offsetLeft();
	[propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)] long offsetTop();
	[propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)] long offsetWidth();
	[propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)] long offsetHeight();
	[propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)] IHTMLElement* offsetParent();
	[propput, id(DISPID_IHTMLELEMENT_INNERHTML)] void innerHTML(BSTR v);
	[propget, id(DISPID_IHTMLELEMENT_INNERHTML)] BSTR innerHTML();
	[propput, id(DISPID_IHTMLELEMENT_INNERTEXT)] void innerText(BSTR v);
	[propget, id(DISPID_IHTMLELEMENT_INNERTEXT)] BSTR innerText();
	[propput, id(DISPID_IHTMLELEMENT_OUTERHTML)] void outerHTML(BSTR v);
	[propget, id(DISPID_IHTMLELEMENT_OUTERHTML)] BSTR outerHTML();
	[propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)] void outerText(BSTR v);
	[propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)] BSTR outerText();
	[id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)] void insertAdjacentHTML([in] BSTR where,[in] BSTR html);
	[id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)] void insertAdjacentText([in] BSTR where,[in] BSTR text);
	[propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)] IHTMLElement* parentTextEdit();
	[propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)] VARIANT_BOOL isTextEdit();
	[id(DISPID_IHTMLELEMENT_CLICK)] void click();
	[propget, id(DISPID_IHTMLELEMENT_FILTERS)] IHTMLFiltersCollection* filters();
	[propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] void ondragstart(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] VARIANT ondragstart();
	[id(DISPID_IHTMLELEMENT_TOSTRING)] BSTR toString();
	[propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] void onbeforeupdate(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] VARIANT onbeforeupdate();
	[propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] void onafterupdate(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] VARIANT onafterupdate();
	[propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] void onerrorupdate(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] VARIANT onerrorupdate();
	[propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] void onrowexit(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] VARIANT onrowexit();
	[propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] void onrowenter(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] VARIANT onrowenter();
	[propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] void ondatasetchanged(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] VARIANT ondatasetchanged();
	[propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] void ondataavailable(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] VARIANT ondataavailable();
	[propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] void ondatasetcomplete(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] VARIANT ondatasetcomplete();
	[propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] void onfilterchange(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] VARIANT onfilterchange();
	[propget, id(DISPID_IHTMLELEMENT_CHILDREN)] IDispatch* children();
	[propget, id(DISPID_IHTMLELEMENT_ALL)] IDispatch* all();
	[propput, id(DISPID_IHTMLCONTROLELEMENT_TABINDEX), displaybind, bindable] void tabIndex(short v);
	[propget, id(DISPID_IHTMLCONTROLELEMENT_TABINDEX), displaybind, bindable] short tabIndex();
	[id(DISPID_IHTMLCONTROLELEMENT_FOCUS)] void focus();
	[propput, id(DISPID_IHTMLCONTROLELEMENT_ACCESSKEY), displaybind, bindable] void accessKey(BSTR v);
	[propget, id(DISPID_IHTMLCONTROLELEMENT_ACCESSKEY), displaybind, bindable] BSTR accessKey();
	[propput, id(DISPID_IHTMLCONTROLELEMENT_ONBLUR), displaybind, bindable] void onblur(VARIANT v);
	[propget, id(DISPID_IHTMLCONTROLELEMENT_ONBLUR), displaybind, bindable] VARIANT onblur();
	[propput, id(DISPID_IHTMLCONTROLELEMENT_ONFOCUS), displaybind, bindable] void onfocus(VARIANT v);
	[propget, id(DISPID_IHTMLCONTROLELEMENT_ONFOCUS), displaybind, bindable] VARIANT onfocus();
	[propput, id(DISPID_IHTMLCONTROLELEMENT_ONRESIZE), displaybind, bindable] void onresize(VARIANT v);
	[propget, id(DISPID_IHTMLCONTROLELEMENT_ONRESIZE), displaybind, bindable] VARIANT onresize();
	[id(DISPID_IHTMLCONTROLELEMENT_BLUR)] void blur();
	[id(DISPID_IHTMLCONTROLELEMENT_ADDFILTER)] void addFilter([in] IUnknown* pUnk);
	[id(DISPID_IHTMLCONTROLELEMENT_REMOVEFILTER)] void removeFilter([in] IUnknown* pUnk);
	[propget, id(DISPID_IHTMLCONTROLELEMENT_CLIENTHEIGHT), displaybind, bindable] long clientHeight();
	[propget, id(DISPID_IHTMLCONTROLELEMENT_CLIENTWIDTH), displaybind, bindable] long clientWidth();
	[propget, id(DISPID_IHTMLCONTROLELEMENT_CLIENTTOP), displaybind, bindable] long clientTop();
	[propget, id(DISPID_IHTMLCONTROLELEMENT_CLIENTLEFT), displaybind, bindable] long clientLeft();
	[propget, id(DISPID_IHTMLINPUTBUTTONELEMENT_TYPE)] BSTR type();
	[propput, id(DISPID_IHTMLINPUTBUTTONELEMENT_VALUE), displaybind, bindable] void value(BSTR v);
	[propget, id(DISPID_IHTMLINPUTBUTTONELEMENT_VALUE), displaybind, bindable] BSTR value();
	[propput, id(DISPID_IHTMLINPUTBUTTONELEMENT_NAME), displaybind, bindable] void name(BSTR v);
	[propget, id(DISPID_IHTMLINPUTBUTTONELEMENT_NAME), displaybind, bindable] BSTR name();
	[propput, id(DISPID_IHTMLINPUTBUTTONELEMENT_STATUS)] void status(VARIANT v);
	[propget, id(DISPID_IHTMLINPUTBUTTONELEMENT_STATUS)] VARIANT status();
	[propput, id(DISPID_IHTMLINPUTBUTTONELEMENT_DISABLED), displaybind, bindable] void disabled(VARIANT_BOOL v);
	[propget, id(DISPID_IHTMLINPUTBUTTONELEMENT_DISABLED), displaybind, bindable] VARIANT_BOOL disabled();
	[propget, id(DISPID_IHTMLINPUTBUTTONELEMENT_FORM)] IHTMLFormElement* form();
	[id(DISPID_IHTMLINPUTBUTTONELEMENT_CREATETEXTRANGE)] IHTMLTxtRange* createTextRange();
};
[uuid(3050f2b4-98b5-11cf-bb82-00aa00bdce0b)]
coclass HTMLInputButtonElement
{
	[default]			dispinterface DispIHTMLInputButtonElement;
	[source, default]	dispinterface HTMLButtonElementEvents;
						interface IHTMLInputButtonElement;
						interface IHTMLControlElement;
						interface IHTMLElement;
};

[
	hidden,
	uuid(3050f520-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispIHTMLInputTextElement
{
properties:
methods:
	[id(DISPID_IHTMLELEMENT_SETATTRIBUTE)] void setAttribute([in] BSTR strAttributeName,[in] VARIANT AttributeValue,[defaultvalue(1), in] LONG lFlags);
	[id(DISPID_IHTMLELEMENT_GETATTRIBUTE)] VARIANT getAttribute([in] BSTR strAttributeName,[defaultvalue(0), in] LONG lFlags);
	[id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)] VARIANT_BOOL removeAttribute([in] BSTR strAttributeName,[defaultvalue(1), in] LONG lFlags);
	[propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] void className(BSTR v);
	[propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] BSTR className();
	[propput, id(DISPID_IHTMLELEMENT_ID), bindable] void id(BSTR v);
	[propget, id(DISPID_IHTMLELEMENT_ID), bindable] BSTR id();
	[propget, id(DISPID_IHTMLELEMENT_TAGNAME)] BSTR tagName();
	[propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)] IHTMLElement* parentElement();
	[propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable] IHTMLStyle* style();
	[propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] void onhelp(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] VARIANT onhelp();
	[propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] void onclick(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] VARIANT onclick();
	[propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] void ondblclick(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] VARIANT ondblclick();
	[propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] void onkeydown(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] VARIANT onkeydown();
	[propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] void onkeyup(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] VARIANT onkeyup();
	[propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] void onkeypress(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] VARIANT onkeypress();
	[propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] void onmouseout(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] VARIANT onmouseout();
	[propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] void onmouseover(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] VARIANT onmouseover();
	[propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] void onmousemove(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] VARIANT onmousemove();
	[propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] void onmousedown(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] VARIANT onmousedown();
	[propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] void onmouseup(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] VARIANT onmouseup();
	[propget, id(DISPID_IHTMLELEMENT_DOCUMENT)] IDispatch* document();
	[propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] void title(BSTR v);
	[propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] BSTR title();
	[propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] void language(BSTR v);
	[propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] BSTR language();
	[propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] void onselectstart(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] VARIANT onselectstart();
	[id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)] void scrollIntoView([optional, in] VARIANT varargStart);
	[id(DISPID_IHTMLELEMENT_CONTAINS)] VARIANT_BOOL contains([in] IHTMLElement* pChild);
	[propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable] long sourceIndex();
	[propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)] VARIANT recordNumber();
	[propput, id(DISPID_IHTMLELEMENT_LANG)] void lang(BSTR v);
	[propget, id(DISPID_IHTMLELEMENT_LANG)] BSTR lang();
	[propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)] long offsetLeft();
	[propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)] long offsetTop();
	[propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)] long offsetWidth();
	[propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)] long offsetHeight();
	[propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)] IHTMLElement* offsetParent();
	[propput, id(DISPID_IHTMLELEMENT_INNERHTML)] void innerHTML(BSTR v);
	[propget, id(DISPID_IHTMLELEMENT_INNERHTML)] BSTR innerHTML();
	[propput, id(DISPID_IHTMLELEMENT_INNERTEXT)] void innerText(BSTR v);
	[propget, id(DISPID_IHTMLELEMENT_INNERTEXT)] BSTR innerText();
	[propput, id(DISPID_IHTMLELEMENT_OUTERHTML)] void outerHTML(BSTR v);
	[propget, id(DISPID_IHTMLELEMENT_OUTERHTML)] BSTR outerHTML();
	[propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)] void outerText(BSTR v);
	[propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)] BSTR outerText();
	[id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)] void insertAdjacentHTML([in] BSTR where,[in] BSTR html);
	[id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)] void insertAdjacentText([in] BSTR where,[in] BSTR text);
	[propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)] IHTMLElement* parentTextEdit();
	[propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)] VARIANT_BOOL isTextEdit();
	[id(DISPID_IHTMLELEMENT_CLICK)] void click();
	[propget, id(DISPID_IHTMLELEMENT_FILTERS)] IHTMLFiltersCollection* filters();
	[propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] void ondragstart(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] VARIANT ondragstart();
	[id(DISPID_IHTMLELEMENT_TOSTRING)] BSTR toString();
	[propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] void onbeforeupdate(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] VARIANT onbeforeupdate();
	[propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] void onafterupdate(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] VARIANT onafterupdate();
	[propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] void onerrorupdate(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] VARIANT onerrorupdate();
	[propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] void onrowexit(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] VARIANT onrowexit();
	[propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] void onrowenter(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] VARIANT onrowenter();
	[propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] void ondatasetchanged(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] VARIANT ondatasetchanged();
	[propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] void ondataavailable(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] VARIANT ondataavailable();
	[propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] void ondatasetcomplete(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] VARIANT ondatasetcomplete();
	[propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] void onfilterchange(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] VARIANT onfilterchange();
	[propget, id(DISPID_IHTMLELEMENT_CHILDREN)] IDispatch* children();
	[propget, id(DISPID_IHTMLELEMENT_ALL)] IDispatch* all();
	[propput, id(DISPID_IHTMLCONTROLELEMENT_TABINDEX), displaybind, bindable] void tabIndex(short v);
	[propget, id(DISPID_IHTMLCONTROLELEMENT_TABINDEX), displaybind, bindable] short tabIndex();
	[id(DISPID_IHTMLCONTROLELEMENT_FOCUS)] void focus();
	[propput, id(DISPID_IHTMLCONTROLELEMENT_ACCESSKEY), displaybind, bindable] void accessKey(BSTR v);
	[propget, id(DISPID_IHTMLCONTROLELEMENT_ACCESSKEY), displaybind, bindable] BSTR accessKey();
	[propput, id(DISPID_IHTMLCONTROLELEMENT_ONBLUR), displaybind, bindable] void onblur(VARIANT v);
	[propget, id(DISPID_IHTMLCONTROLELEMENT_ONBLUR), displaybind, bindable] VARIANT onblur();
	[propput, id(DISPID_IHTMLCONTROLELEMENT_ONFOCUS), displaybind, bindable] void onfocus(VARIANT v);
	[propget, id(DISPID_IHTMLCONTROLELEMENT_ONFOCUS), displaybind, bindable] VARIANT onfocus();
	[propput, id(DISPID_IHTMLCONTROLELEMENT_ONRESIZE), displaybind, bindable] void onresize(VARIANT v);
	[propget, id(DISPID_IHTMLCONTROLELEMENT_ONRESIZE), displaybind, bindable] VARIANT onresize();
	[id(DISPID_IHTMLCONTROLELEMENT_BLUR)] void blur();
	[id(DISPID_IHTMLCONTROLELEMENT_ADDFILTER)] void addFilter([in] IUnknown* pUnk);
	[id(DISPID_IHTMLCONTROLELEMENT_REMOVEFILTER)] void removeFilter([in] IUnknown* pUnk);
	[propget, id(DISPID_IHTMLCONTROLELEMENT_CLIENTHEIGHT), displaybind, bindable] long clientHeight();
	[propget, id(DISPID_IHTMLCONTROLELEMENT_CLIENTWIDTH), displaybind, bindable] long clientWidth();
	[propget, id(DISPID_IHTMLCONTROLELEMENT_CLIENTTOP), displaybind, bindable] long clientTop();
	[propget, id(DISPID_IHTMLCONTROLELEMENT_CLIENTLEFT), displaybind, bindable] long clientLeft();
	[propget, id(DISPID_IHTMLINPUTTEXTELEMENT_TYPE)] BSTR type();
	[propput, id(DISPID_IHTMLINPUTTEXTELEMENT_VALUE), displaybind, bindable] void value(BSTR v);
	[propget, id(DISPID_IHTMLINPUTTEXTELEMENT_VALUE), displaybind, bindable] BSTR value();
	[propput, id(DISPID_IHTMLINPUTTEXTELEMENT_NAME), displaybind, bindable] void name(BSTR v);
	[propget, id(DISPID_IHTMLINPUTTEXTELEMENT_NAME), displaybind, bindable] BSTR name();
	[propput, id(DISPID_IHTMLINPUTTEXTELEMENT_STATUS)] void status(VARIANT v);
	[propget, id(DISPID_IHTMLINPUTTEXTELEMENT_STATUS)] VARIANT status();
	[propput, id(DISPID_IHTMLINPUTTEXTELEMENT_DISABLED), displaybind, bindable] void disabled(VARIANT_BOOL v);
	[propget, id(DISPID_IHTMLINPUTTEXTELEMENT_DISABLED), displaybind, bindable] VARIANT_BOOL disabled();
	[propget, id(DISPID_IHTMLINPUTTEXTELEMENT_FORM)] IHTMLFormElement* form();
	[propput, id(DISPID_IHTMLINPUTTEXTELEMENT_DEFAULTVALUE), displaybind, bindable, hidden] void defaultValue(BSTR v);
	[propget, id(DISPID_IHTMLINPUTTEXTELEMENT_DEFAULTVALUE), displaybind, bindable, hidden] BSTR defaultValue();
	[propput, id(DISPID_IHTMLINPUTTEXTELEMENT_SIZE), displaybind, bindable] void size(long v);
	[propget, id(DISPID_IHTMLINPUTTEXTELEMENT_SIZE), displaybind, bindable] long size();
	[propput, id(DISPID_IHTMLINPUTTEXTELEMENT_MAXLENGTH), displaybind, bindable] void maxLength(long v);
	[propget, id(DISPID_IHTMLINPUTTEXTELEMENT_MAXLENGTH), displaybind, bindable] long maxLength();
	[id(DISPID_IHTMLINPUTTEXTELEMENT_SELECT)] void select();
	[propput, id(DISPID_IHTMLINPUTTEXTELEMENT_ONCHANGE), displaybind, bindable] void onchange(VARIANT v);
	[propget, id(DISPID_IHTMLINPUTTEXTELEMENT_ONCHANGE), displaybind, bindable] VARIANT onchange();
	[propput, id(DISPID_IHTMLINPUTTEXTELEMENT_ONSELECT), displaybind, bindable] void onselect(VARIANT v);
	[propget, id(DISPID_IHTMLINPUTTEXTELEMENT_ONSELECT), displaybind, bindable] VARIANT onselect();
	[propput, id(DISPID_IHTMLINPUTTEXTELEMENT_READONLY), displaybind, bindable] void readOnly(VARIANT_BOOL v);
	[propget, id(DISPID_IHTMLINPUTTEXTELEMENT_READONLY), displaybind, bindable] VARIANT_BOOL readOnly();
	[id(DISPID_IHTMLINPUTTEXTELEMENT_CREATETEXTRANGE)] IHTMLTxtRange* createTextRange();
	[propput, id(DISPID_IHTMLDATABINDING_DATAFLD)] void dataFld(BSTR v);
	[propget, id(DISPID_IHTMLDATABINDING_DATAFLD)] BSTR dataFld();
	[propput, id(DISPID_IHTMLDATABINDING_DATASRC)] void dataSrc(BSTR v);
	[propget, id(DISPID_IHTMLDATABINDING_DATASRC)] BSTR dataSrc();
	[propput, id(DISPID_IHTMLDATABINDING_DATAFORMATAS)] void dataFormatAs(BSTR v);
	[propget, id(DISPID_IHTMLDATABINDING_DATAFORMATAS)] BSTR dataFormatAs();
};
[uuid(3050f2ab-98b5-11cf-bb82-00aa00bdce0b)]
coclass HTMLInputTextElement
{
	[default]			dispinterface DispIHTMLInputTextElement;
	[source, default]	dispinterface HTMLInputTextElementEvents;
						interface IHTMLInputTextElement;
						interface IHTMLControlElement;
						interface IHTMLElement;
						interface IHTMLDatabinding;
};

[
	hidden,
	uuid(3050f542-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispIHTMLInputFileElement
{
properties:
methods:
	[id(DISPID_IHTMLELEMENT_SETATTRIBUTE)] void setAttribute([in] BSTR strAttributeName,[in] VARIANT AttributeValue,[defaultvalue(1), in] LONG lFlags);
	[id(DISPID_IHTMLELEMENT_GETATTRIBUTE)] VARIANT getAttribute([in] BSTR strAttributeName,[defaultvalue(0), in] LONG lFlags);
	[id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)] VARIANT_BOOL removeAttribute([in] BSTR strAttributeName,[defaultvalue(1), in] LONG lFlags);
	[propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] void className(BSTR v);
	[propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] BSTR className();
	[propput, id(DISPID_IHTMLELEMENT_ID), bindable] void id(BSTR v);
	[propget, id(DISPID_IHTMLELEMENT_ID), bindable] BSTR id();
	[propget, id(DISPID_IHTMLELEMENT_TAGNAME)] BSTR tagName();
	[propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)] IHTMLElement* parentElement();
	[propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable] IHTMLStyle* style();
	[propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] void onhelp(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] VARIANT onhelp();
	[propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] void onclick(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] VARIANT onclick();
	[propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] void ondblclick(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] VARIANT ondblclick();
	[propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] void onkeydown(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] VARIANT onkeydown();
	[propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] void onkeyup(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] VARIANT onkeyup();
	[propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] void onkeypress(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] VARIANT onkeypress();
	[propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] void onmouseout(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] VARIANT onmouseout();
	[propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] void onmouseover(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] VARIANT onmouseover();
	[propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] void onmousemove(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] VARIANT onmousemove();
	[propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] void onmousedown(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] VARIANT onmousedown();
	[propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] void onmouseup(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] VARIANT onmouseup();
	[propget, id(DISPID_IHTMLELEMENT_DOCUMENT)] IDispatch* document();
	[propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] void title(BSTR v);
	[propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] BSTR title();
	[propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] void language(BSTR v);
	[propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] BSTR language();
	[propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] void onselectstart(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] VARIANT onselectstart();
	[id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)] void scrollIntoView([optional, in] VARIANT varargStart);
	[id(DISPID_IHTMLELEMENT_CONTAINS)] VARIANT_BOOL contains([in] IHTMLElement* pChild);
	[propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable] long sourceIndex();
	[propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)] VARIANT recordNumber();
	[propput, id(DISPID_IHTMLELEMENT_LANG)] void lang(BSTR v);
	[propget, id(DISPID_IHTMLELEMENT_LANG)] BSTR lang();
	[propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)] long offsetLeft();
	[propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)] long offsetTop();
	[propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)] long offsetWidth();
	[propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)] long offsetHeight();
	[propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)] IHTMLElement* offsetParent();
	[propput, id(DISPID_IHTMLELEMENT_INNERHTML)] void innerHTML(BSTR v);
	[propget, id(DISPID_IHTMLELEMENT_INNERHTML)] BSTR innerHTML();
	[propput, id(DISPID_IHTMLELEMENT_INNERTEXT)] void innerText(BSTR v);
	[propget, id(DISPID_IHTMLELEMENT_INNERTEXT)] BSTR innerText();
	[propput, id(DISPID_IHTMLELEMENT_OUTERHTML)] void outerHTML(BSTR v);
	[propget, id(DISPID_IHTMLELEMENT_OUTERHTML)] BSTR outerHTML();
	[propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)] void outerText(BSTR v);
	[propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)] BSTR outerText();
	[id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)] void insertAdjacentHTML([in] BSTR where,[in] BSTR html);
	[id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)] void insertAdjacentText([in] BSTR where,[in] BSTR text);
	[propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)] IHTMLElement* parentTextEdit();
	[propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)] VARIANT_BOOL isTextEdit();
	[id(DISPID_IHTMLELEMENT_CLICK)] void click();
	[propget, id(DISPID_IHTMLELEMENT_FILTERS)] IHTMLFiltersCollection* filters();
	[propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] void ondragstart(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] VARIANT ondragstart();
	[id(DISPID_IHTMLELEMENT_TOSTRING)] BSTR toString();
	[propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] void onbeforeupdate(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] VARIANT onbeforeupdate();
	[propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] void onafterupdate(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] VARIANT onafterupdate();
	[propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] void onerrorupdate(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] VARIANT onerrorupdate();
	[propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] void onrowexit(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] VARIANT onrowexit();
	[propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] void onrowenter(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] VARIANT onrowenter();
	[propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] void ondatasetchanged(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] VARIANT ondatasetchanged();
	[propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] void ondataavailable(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] VARIANT ondataavailable();
	[propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] void ondatasetcomplete(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] VARIANT ondatasetcomplete();
	[propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] void onfilterchange(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] VARIANT onfilterchange();
	[propget, id(DISPID_IHTMLELEMENT_CHILDREN)] IDispatch* children();
	[propget, id(DISPID_IHTMLELEMENT_ALL)] IDispatch* all();
	[propput, id(DISPID_IHTMLCONTROLELEMENT_TABINDEX), displaybind, bindable] void tabIndex(short v);
	[propget, id(DISPID_IHTMLCONTROLELEMENT_TABINDEX), displaybind, bindable] short tabIndex();
	[id(DISPID_IHTMLCONTROLELEMENT_FOCUS)] void focus();
	[propput, id(DISPID_IHTMLCONTROLELEMENT_ACCESSKEY), displaybind, bindable] void accessKey(BSTR v);
	[propget, id(DISPID_IHTMLCONTROLELEMENT_ACCESSKEY), displaybind, bindable] BSTR accessKey();
	[propput, id(DISPID_IHTMLCONTROLELEMENT_ONBLUR), displaybind, bindable] void onblur(VARIANT v);
	[propget, id(DISPID_IHTMLCONTROLELEMENT_ONBLUR), displaybind, bindable] VARIANT onblur();
	[propput, id(DISPID_IHTMLCONTROLELEMENT_ONFOCUS), displaybind, bindable] void onfocus(VARIANT v);
	[propget, id(DISPID_IHTMLCONTROLELEMENT_ONFOCUS), displaybind, bindable] VARIANT onfocus();
	[propput, id(DISPID_IHTMLCONTROLELEMENT_ONRESIZE), displaybind, bindable] void onresize(VARIANT v);
	[propget, id(DISPID_IHTMLCONTROLELEMENT_ONRESIZE), displaybind, bindable] VARIANT onresize();
	[id(DISPID_IHTMLCONTROLELEMENT_BLUR)] void blur();
	[id(DISPID_IHTMLCONTROLELEMENT_ADDFILTER)] void addFilter([in] IUnknown* pUnk);
	[id(DISPID_IHTMLCONTROLELEMENT_REMOVEFILTER)] void removeFilter([in] IUnknown* pUnk);
	[propget, id(DISPID_IHTMLCONTROLELEMENT_CLIENTHEIGHT), displaybind, bindable] long clientHeight();
	[propget, id(DISPID_IHTMLCONTROLELEMENT_CLIENTWIDTH), displaybind, bindable] long clientWidth();
	[propget, id(DISPID_IHTMLCONTROLELEMENT_CLIENTTOP), displaybind, bindable] long clientTop();
	[propget, id(DISPID_IHTMLCONTROLELEMENT_CLIENTLEFT), displaybind, bindable] long clientLeft();
	[propget, id(DISPID_IHTMLINPUTFILEELEMENT_TYPE)] BSTR type();
	[propput, id(DISPID_IHTMLINPUTFILEELEMENT_NAME), displaybind, bindable] void name(BSTR v);
	[propget, id(DISPID_IHTMLINPUTFILEELEMENT_NAME), displaybind, bindable] BSTR name();
	[propput, id(DISPID_IHTMLINPUTFILEELEMENT_STATUS)] void status(VARIANT v);
	[propget, id(DISPID_IHTMLINPUTFILEELEMENT_STATUS)] VARIANT status();
	[propput, id(DISPID_IHTMLINPUTFILEELEMENT_DISABLED), displaybind, bindable] void disabled(VARIANT_BOOL v);
	[propget, id(DISPID_IHTMLINPUTFILEELEMENT_DISABLED), displaybind, bindable] VARIANT_BOOL disabled();
	[propget, id(DISPID_IHTMLINPUTFILEELEMENT_FORM)] IHTMLFormElement* form();
	[propput, id(DISPID_IHTMLINPUTFILEELEMENT_SIZE), displaybind, bindable] void size(long v);
	[propget, id(DISPID_IHTMLINPUTFILEELEMENT_SIZE), displaybind, bindable] long size();
	[propput, id(DISPID_IHTMLINPUTFILEELEMENT_MAXLENGTH), displaybind, bindable] void maxLength(long v);
	[propget, id(DISPID_IHTMLINPUTFILEELEMENT_MAXLENGTH), displaybind, bindable] long maxLength();
	[id(DISPID_IHTMLINPUTFILEELEMENT_SELECT)] void select();
	[propput, id(DISPID_IHTMLINPUTFILEELEMENT_ONCHANGE), displaybind, bindable] void onchange(VARIANT v);
	[propget, id(DISPID_IHTMLINPUTFILEELEMENT_ONCHANGE), displaybind, bindable] VARIANT onchange();
	[propput, id(DISPID_IHTMLINPUTFILEELEMENT_ONSELECT), displaybind, bindable] void onselect(VARIANT v);
	[propget, id(DISPID_IHTMLINPUTFILEELEMENT_ONSELECT), displaybind, bindable] VARIANT onselect();
	[propput, id(DISPID_IHTMLINPUTFILEELEMENT_VALUE), displaybind, bindable] void value(BSTR v);
	[propget, id(DISPID_IHTMLINPUTFILEELEMENT_VALUE), displaybind, bindable] BSTR value();
};
[uuid(3050f2ae-98b5-11cf-bb82-00aa00bdce0b)]
coclass HTMLInputFileElement
{
	[default]			dispinterface DispIHTMLInputFileElement;
	[source, default]	dispinterface HTMLInputFileElementEvents;
						interface IHTMLInputFileElement;
						interface IHTMLControlElement;
						interface IHTMLElement;
};

[
	hidden,
	uuid(3050f509-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispIHTMLOptionButtonElement
{
properties:
methods:
	[id(DISPID_IHTMLELEMENT_SETATTRIBUTE)] void setAttribute([in] BSTR strAttributeName,[in] VARIANT AttributeValue,[defaultvalue(1), in] LONG lFlags);
	[id(DISPID_IHTMLELEMENT_GETATTRIBUTE)] VARIANT getAttribute([in] BSTR strAttributeName,[defaultvalue(0), in] LONG lFlags);
	[id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)] VARIANT_BOOL removeAttribute([in] BSTR strAttributeName,[defaultvalue(1), in] LONG lFlags);
	[propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] void className(BSTR v);
	[propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] BSTR className();
	[propput, id(DISPID_IHTMLELEMENT_ID), bindable] void id(BSTR v);
	[propget, id(DISPID_IHTMLELEMENT_ID), bindable] BSTR id();
	[propget, id(DISPID_IHTMLELEMENT_TAGNAME)] BSTR tagName();
	[propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)] IHTMLElement* parentElement();
	[propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable] IHTMLStyle* style();
	[propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] void onhelp(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] VARIANT onhelp();
	[propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] void onclick(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] VARIANT onclick();
	[propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] void ondblclick(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] VARIANT ondblclick();
	[propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] void onkeydown(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] VARIANT onkeydown();
	[propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] void onkeyup(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] VARIANT onkeyup();
	[propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] void onkeypress(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] VARIANT onkeypress();
	[propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] void onmouseout(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] VARIANT onmouseout();
	[propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] void onmouseover(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] VARIANT onmouseover();
	[propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] void onmousemove(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] VARIANT onmousemove();
	[propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] void onmousedown(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] VARIANT onmousedown();
	[propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] void onmouseup(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] VARIANT onmouseup();
	[propget, id(DISPID_IHTMLELEMENT_DOCUMENT)] IDispatch* document();
	[propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] void title(BSTR v);
	[propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] BSTR title();
	[propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] void language(BSTR v);
	[propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] BSTR language();
	[propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] void onselectstart(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] VARIANT onselectstart();
	[id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)] void scrollIntoView([optional, in] VARIANT varargStart);
	[id(DISPID_IHTMLELEMENT_CONTAINS)] VARIANT_BOOL contains([in] IHTMLElement* pChild);
	[propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable] long sourceIndex();
	[propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)] VARIANT recordNumber();
	[propput, id(DISPID_IHTMLELEMENT_LANG)] void lang(BSTR v);
	[propget, id(DISPID_IHTMLELEMENT_LANG)] BSTR lang();
	[propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)] long offsetLeft();
	[propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)] long offsetTop();
	[propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)] long offsetWidth();
	[propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)] long offsetHeight();
	[propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)] IHTMLElement* offsetParent();
	[propput, id(DISPID_IHTMLELEMENT_INNERHTML)] void innerHTML(BSTR v);
	[propget, id(DISPID_IHTMLELEMENT_INNERHTML)] BSTR innerHTML();
	[propput, id(DISPID_IHTMLELEMENT_INNERTEXT)] void innerText(BSTR v);
	[propget, id(DISPID_IHTMLELEMENT_INNERTEXT)] BSTR innerText();
	[propput, id(DISPID_IHTMLELEMENT_OUTERHTML)] void outerHTML(BSTR v);
	[propget, id(DISPID_IHTMLELEMENT_OUTERHTML)] BSTR outerHTML();
	[propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)] void outerText(BSTR v);
	[propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)] BSTR outerText();
	[id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)] void insertAdjacentHTML([in] BSTR where,[in] BSTR html);
	[id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)] void insertAdjacentText([in] BSTR where,[in] BSTR text);
	[propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)] IHTMLElement* parentTextEdit();
	[propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)] VARIANT_BOOL isTextEdit();
	[id(DISPID_IHTMLELEMENT_CLICK)] void click();
	[propget, id(DISPID_IHTMLELEMENT_FILTERS)] IHTMLFiltersCollection* filters();
	[propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] void ondragstart(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] VARIANT ondragstart();
	[id(DISPID_IHTMLELEMENT_TOSTRING)] BSTR toString();
	[propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] void onbeforeupdate(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] VARIANT onbeforeupdate();
	[propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] void onafterupdate(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] VARIANT onafterupdate();
	[propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] void onerrorupdate(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] VARIANT onerrorupdate();
	[propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] void onrowexit(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] VARIANT onrowexit();
	[propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] void onrowenter(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] VARIANT onrowenter();
	[propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] void ondatasetchanged(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] VARIANT ondatasetchanged();
	[propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] void ondataavailable(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] VARIANT ondataavailable();
	[propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] void ondatasetcomplete(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] VARIANT ondatasetcomplete();
	[propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] void onfilterchange(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] VARIANT onfilterchange();
	[propget, id(DISPID_IHTMLELEMENT_CHILDREN)] IDispatch* children();
	[propget, id(DISPID_IHTMLELEMENT_ALL)] IDispatch* all();
	[propput, id(DISPID_IHTMLCONTROLELEMENT_TABINDEX), displaybind, bindable] void tabIndex(short v);
	[propget, id(DISPID_IHTMLCONTROLELEMENT_TABINDEX), displaybind, bindable] short tabIndex();
	[id(DISPID_IHTMLCONTROLELEMENT_FOCUS)] void focus();
	[propput, id(DISPID_IHTMLCONTROLELEMENT_ACCESSKEY), displaybind, bindable] void accessKey(BSTR v);
	[propget, id(DISPID_IHTMLCONTROLELEMENT_ACCESSKEY), displaybind, bindable] BSTR accessKey();
	[propput, id(DISPID_IHTMLCONTROLELEMENT_ONBLUR), displaybind, bindable] void onblur(VARIANT v);
	[propget, id(DISPID_IHTMLCONTROLELEMENT_ONBLUR), displaybind, bindable] VARIANT onblur();
	[propput, id(DISPID_IHTMLCONTROLELEMENT_ONFOCUS), displaybind, bindable] void onfocus(VARIANT v);
	[propget, id(DISPID_IHTMLCONTROLELEMENT_ONFOCUS), displaybind, bindable] VARIANT onfocus();
	[propput, id(DISPID_IHTMLCONTROLELEMENT_ONRESIZE), displaybind, bindable] void onresize(VARIANT v);
	[propget, id(DISPID_IHTMLCONTROLELEMENT_ONRESIZE), displaybind, bindable] VARIANT onresize();
	[id(DISPID_IHTMLCONTROLELEMENT_BLUR)] void blur();
	[id(DISPID_IHTMLCONTROLELEMENT_ADDFILTER)] void addFilter([in] IUnknown* pUnk);
	[id(DISPID_IHTMLCONTROLELEMENT_REMOVEFILTER)] void removeFilter([in] IUnknown* pUnk);
	[propget, id(DISPID_IHTMLCONTROLELEMENT_CLIENTHEIGHT), displaybind, bindable] long clientHeight();
	[propget, id(DISPID_IHTMLCONTROLELEMENT_CLIENTWIDTH), displaybind, bindable] long clientWidth();
	[propget, id(DISPID_IHTMLCONTROLELEMENT_CLIENTTOP), displaybind, bindable] long clientTop();
	[propget, id(DISPID_IHTMLCONTROLELEMENT_CLIENTLEFT), displaybind, bindable] long clientLeft();
	[propput, id(DISPID_IHTMLOPTIONBUTTONELEMENT_VALUE), bindable] void value(BSTR v);
	[propget, id(DISPID_IHTMLOPTIONBUTTONELEMENT_VALUE), bindable] BSTR value();
	[propget, id(DISPID_IHTMLOPTIONBUTTONELEMENT_TYPE)] BSTR type();
	[propput, id(DISPID_IHTMLOPTIONBUTTONELEMENT_NAME), bindable] void name(BSTR v);
	[propget, id(DISPID_IHTMLOPTIONBUTTONELEMENT_NAME), bindable] BSTR name();
	[propput, id(DISPID_IHTMLOPTIONBUTTONELEMENT_CHECKED), bindable] void checked(VARIANT_BOOL v);
	[propget, id(DISPID_IHTMLOPTIONBUTTONELEMENT_CHECKED), bindable] VARIANT_BOOL checked();
	[propput, id(DISPID_IHTMLOPTIONBUTTONELEMENT_DEFAULTCHECKED), bindable] void defaultChecked(VARIANT_BOOL v);
	[propget, id(DISPID_IHTMLOPTIONBUTTONELEMENT_DEFAULTCHECKED), bindable] VARIANT_BOOL defaultChecked();
	[propput, id(DISPID_IHTMLOPTIONBUTTONELEMENT_ONCHANGE), bindable] void onchange(VARIANT v);
	[propget, id(DISPID_IHTMLOPTIONBUTTONELEMENT_ONCHANGE), bindable] VARIANT onchange();
	[propput, id(DISPID_IHTMLOPTIONBUTTONELEMENT_DISABLED), displaybind, bindable] void disabled(VARIANT_BOOL v);
	[propget, id(DISPID_IHTMLOPTIONBUTTONELEMENT_DISABLED), displaybind, bindable] VARIANT_BOOL disabled();
	[propput, id(DISPID_IHTMLOPTIONBUTTONELEMENT_STATUS)] void status(VARIANT_BOOL v);
	[propget, id(DISPID_IHTMLOPTIONBUTTONELEMENT_STATUS)] VARIANT_BOOL status();
	[propput, id(DISPID_IHTMLOPTIONBUTTONELEMENT_INDETERMINATE), bindable] void indeterminate(VARIANT_BOOL v);
	[propget, id(DISPID_IHTMLOPTIONBUTTONELEMENT_INDETERMINATE), bindable] VARIANT_BOOL indeterminate();
	[propget, id(DISPID_IHTMLOPTIONBUTTONELEMENT_FORM)] IHTMLFormElement* form();
	[propput, id(DISPID_IHTMLDATABINDING_DATAFLD)] void dataFld(BSTR v);
	[propget, id(DISPID_IHTMLDATABINDING_DATAFLD)] BSTR dataFld();
	[propput, id(DISPID_IHTMLDATABINDING_DATASRC)] void dataSrc(BSTR v);
	[propget, id(DISPID_IHTMLDATABINDING_DATASRC)] BSTR dataSrc();
	[propput, id(DISPID_IHTMLDATABINDING_DATAFORMATAS)] void dataFormatAs(BSTR v);
	[propget, id(DISPID_IHTMLDATABINDING_DATAFORMATAS)] BSTR dataFormatAs();
};
[uuid(3050f2be-98b5-11cf-bb82-00aa00bdce0b)]
coclass HTMLOptionButtonElement
{
	[default]			dispinterface DispIHTMLOptionButtonElement;
	[source, default]	dispinterface HTMLOptionButtonElementEvents;
						interface IHTMLOptionButtonElement;
						interface IHTMLControlElement;
						interface IHTMLElement;
						interface IHTMLDatabinding;
};

[
	hidden,
	uuid(3050f51d-98b5-11cf-bb82-00aa00bdce0b)
]
dispinterface DispIHTMLInputImage
{
properties:
methods:
	[id(DISPID_IHTMLELEMENT_SETATTRIBUTE)] void setAttribute([in] BSTR strAttributeName,[in] VARIANT AttributeValue,[defaultvalue(1), in] LONG lFlags);
	[id(DISPID_IHTMLELEMENT_GETATTRIBUTE)] VARIANT getAttribute([in] BSTR strAttributeName,[defaultvalue(0), in] LONG lFlags);
	[id(DISPID_IHTMLELEMENT_REMOVEATTRIBUTE)] VARIANT_BOOL removeAttribute([in] BSTR strAttributeName,[defaultvalue(1), in] LONG lFlags);
	[propput, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] void className(BSTR v);
	[propget, id(DISPID_IHTMLELEMENT_CLASSNAME), bindable] BSTR className();
	[propput, id(DISPID_IHTMLELEMENT_ID), bindable] void id(BSTR v);
	[propget, id(DISPID_IHTMLELEMENT_ID), bindable] BSTR id();
	[propget, id(DISPID_IHTMLELEMENT_TAGNAME)] BSTR tagName();
	[propget, id(DISPID_IHTMLELEMENT_PARENTELEMENT)] IHTMLElement* parentElement();
	[propget, id(DISPID_IHTMLELEMENT_STYLE), nonbrowsable] IHTMLStyle* style();
	[propput, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] void onhelp(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONHELP), displaybind, bindable] VARIANT onhelp();
	[propput, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] void onclick(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONCLICK), displaybind, bindable] VARIANT onclick();
	[propput, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] void ondblclick(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONDBLCLICK), displaybind, bindable] VARIANT ondblclick();
	[propput, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] void onkeydown(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONKEYDOWN), displaybind, bindable] VARIANT onkeydown();
	[propput, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] void onkeyup(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONKEYUP), displaybind, bindable] VARIANT onkeyup();
	[propput, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] void onkeypress(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONKEYPRESS), displaybind, bindable] VARIANT onkeypress();
	[propput, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] void onmouseout(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONMOUSEOUT), displaybind, bindable] VARIANT onmouseout();
	[propput, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] void onmouseover(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONMOUSEOVER), displaybind, bindable] VARIANT onmouseover();
	[propput, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] void onmousemove(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONMOUSEMOVE), displaybind, bindable] VARIANT onmousemove();
	[propput, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] void onmousedown(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONMOUSEDOWN), displaybind, bindable] VARIANT onmousedown();
	[propput, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] void onmouseup(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONMOUSEUP), displaybind, bindable] VARIANT onmouseup();
	[propget, id(DISPID_IHTMLELEMENT_DOCUMENT)] IDispatch* document();
	[propput, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] void title(BSTR v);
	[propget, id(DISPID_IHTMLELEMENT_TITLE), displaybind, bindable] BSTR title();
	[propput, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] void language(BSTR v);
	[propget, id(DISPID_IHTMLELEMENT_LANGUAGE), displaybind, bindable] BSTR language();
	[propput, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] void onselectstart(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONSELECTSTART), displaybind, bindable] VARIANT onselectstart();
	[id(DISPID_IHTMLELEMENT_SCROLLINTOVIEW)] void scrollIntoView([optional, in] VARIANT varargStart);
	[id(DISPID_IHTMLELEMENT_CONTAINS)] VARIANT_BOOL contains([in] IHTMLElement* pChild);
	[propget, id(DISPID_IHTMLELEMENT_SOURCEINDEX), bindable] long sourceIndex();
	[propget, id(DISPID_IHTMLELEMENT_RECORDNUMBER)] VARIANT recordNumber();
	[propput, id(DISPID_IHTMLELEMENT_LANG)] void lang(BSTR v);
	[propget, id(DISPID_IHTMLELEMENT_LANG)] BSTR lang();
	[propget, id(DISPID_IHTMLELEMENT_OFFSETLEFT)] long offsetLeft();
	[propget, id(DISPID_IHTMLELEMENT_OFFSETTOP)] long offsetTop();
	[propget, id(DISPID_IHTMLELEMENT_OFFSETWIDTH)] long offsetWidth();
	[propget, id(DISPID_IHTMLELEMENT_OFFSETHEIGHT)] long offsetHeight();
	[propget, id(DISPID_IHTMLELEMENT_OFFSETPARENT)] IHTMLElement* offsetParent();
	[propput, id(DISPID_IHTMLELEMENT_INNERHTML)] void innerHTML(BSTR v);
	[propget, id(DISPID_IHTMLELEMENT_INNERHTML)] BSTR innerHTML();
	[propput, id(DISPID_IHTMLELEMENT_INNERTEXT)] void innerText(BSTR v);
	[propget, id(DISPID_IHTMLELEMENT_INNERTEXT)] BSTR innerText();
	[propput, id(DISPID_IHTMLELEMENT_OUTERHTML)] void outerHTML(BSTR v);
	[propget, id(DISPID_IHTMLELEMENT_OUTERHTML)] BSTR outerHTML();
	[propput, id(DISPID_IHTMLELEMENT_OUTERTEXT)] void outerText(BSTR v);
	[propget, id(DISPID_IHTMLELEMENT_OUTERTEXT)] BSTR outerText();
	[id(DISPID_IHTMLELEMENT_INSERTADJACENTHTML)] void insertAdjacentHTML([in] BSTR where,[in] BSTR html);
	[id(DISPID_IHTMLELEMENT_INSERTADJACENTTEXT)] void insertAdjacentText([in] BSTR where,[in] BSTR text);
	[propget, id(DISPID_IHTMLELEMENT_PARENTTEXTEDIT)] IHTMLElement* parentTextEdit();
	[propget, id(DISPID_IHTMLELEMENT_ISTEXTEDIT)] VARIANT_BOOL isTextEdit();
	[id(DISPID_IHTMLELEMENT_CLICK)] void click();
	[propget, id(DISPID_IHTMLELEMENT_FILTERS)] IHTMLFiltersCollection* filters();
	[propput, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] void ondragstart(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONDRAGSTART), displaybind, bindable] VARIANT ondragstart();
	[id(DISPID_IHTMLELEMENT_TOSTRING)] BSTR toString();
	[propput, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] void onbeforeupdate(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONBEFOREUPDATE), displaybind, bindable] VARIANT onbeforeupdate();
	[propput, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] void onafterupdate(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONAFTERUPDATE), displaybind, bindable] VARIANT onafterupdate();
	[propput, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] void onerrorupdate(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONERRORUPDATE), displaybind, bindable] VARIANT onerrorupdate();
	[propput, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] void onrowexit(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONROWEXIT), displaybind, bindable] VARIANT onrowexit();
	[propput, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] void onrowenter(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONROWENTER), displaybind, bindable] VARIANT onrowenter();
	[propput, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] void ondatasetchanged(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONDATASETCHANGED), displaybind, bindable] VARIANT ondatasetchanged();
	[propput, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] void ondataavailable(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONDATAAVAILABLE), displaybind, bindable] VARIANT ondataavailable();
	[propput, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] void ondatasetcomplete(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONDATASETCOMPLETE), displaybind, bindable] VARIANT ondatasetcomplete();
	[propput, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] void onfilterchange(VARIANT v);
	[propget, id(DISPID_IHTMLELEMENT_ONFILTERCHANGE), displaybind, bindable] VARIANT onfilterchange();
	[propget, id(DISPID_IHTMLELEMENT_CHILDREN)] IDispatch* children();
	[propget, id(DISPID_IHTMLELEMENT_ALL)] IDispatch* all();
	[propput, id(DISPID_IHTMLCONTROLELEMENT_TABINDEX), displaybind, bindable] void tabIndex(short v);
	[propget, id(DISPID_IHTMLCONTROLELEMENT_TABINDEX), displaybind, bindable] short tabIndex();
	[id(DISPID_IHTMLCONTROLELEMENT_FOCUS)] void focus();
	[propput, id(DISPID_IHTMLCONTROLELEMENT_ACCESSKEY), displaybind, bindable] void accessKey(BSTR v);
	[propget, id(DISPID_IHTMLCONTROLELEMENT_ACCESSKEY), displaybind, bindable] BSTR accessKey();
	[propput, id(DISPID_IHTMLCONTROLELEMENT_ONBLUR), displaybind, bindable] void onblur(VARIANT v);
	[propget, id(DISPID_IHTMLCONTROLELEMENT_ONBLUR), displaybind, bindable] VARIANT onblur();
	[propput, id(DISPID_IHTMLCONTROLELEMENT_ONFOCUS), displaybind, bindable] void onfocus(VARIANT v);
	[propget, id(DISPID_IHTMLCONTROLELEMENT_ONFOCUS), displaybind, bindable] VARIANT onfocus();
	[propput, id(DISPID_IHTMLCONTROLELEMENT_ONRESIZE), displaybind, bindable] void onresize(VARIANT v);
	[propget, id(DISPID_IHTMLCONTROLELEMENT_ONRESIZE), displaybind, bindable] VARIANT onresize();
	[id(DISPID_IHTMLCONTROLELEMENT_BLUR)] void blur();
	[id(DISPID_IHTMLCONTROLELEMENT_ADDFILTER)] void addFilter([in] IUnknown* pUnk);
	[id(DISPID_IHTMLCONTROLELEMENT_REMOVEFILTER)] void removeFilter([in] IUnknown* pUnk);
	[propget, id(DISPID_IHTMLCONTROLELEMENT_CLIENTHEIGHT), displaybind, bindable] long clientHeight();
	[propget, id(DISPID_IHTMLCONTROLELEMENT_CLIENTWIDTH), displaybind, bindable] long clientWidth();
	[propget, id(DISPID_IHTMLCONTROLELEMENT_CLIENTTOP), displaybind, bindable] long clientTop();
	[propget, id(DISPID_IHTMLCONTROLELEMENT_CLIENTLEFT), displaybind, bindable] long clientLeft();
	[propget, id(DISPID_IHTMLINPUTIMAGE_TYPE)] BSTR type();
	[propput, id(DISPID_IHTMLINPUTIMAGE_DISABLED), displaybind, bindable] void disabled(VARIANT_BOOL v);
	[propget, id(DISPID_IHTMLINPUTIMAGE_DISABLED), displaybind, bindable] VARIANT_BOOL disabled();
	[propput, id(DISPID_IHTMLINPUTIMAGE_BORDER), displaybind, bindable] void border(VARIANT v);
	[propget, id(DISPID_IHTMLINPUTIMAGE_BORDER), displaybind, bindable] VARIANT border();
	[propput, id(DISPID_IHTMLINPUTIMAGE_VSPACE), displaybind, bindable] void vspace(long v);
	[propget, id(DISPID_IHTMLINPUTIMAGE_VSPACE), displaybind, bindable] long vspace();
	[propput, id(DISPID_IHTMLINPUTIMAGE_HSPACE), displaybind, bindable] void hspace(long v);
	[propget, id(DISPID_IHTMLINPUTIMAGE_HSPACE), displaybind, bindable] long hspace();
	[propput, id(DISPID_IHTMLINPUTIMAGE_ALT), displaybind, bindable] void alt(BSTR v);
	[propget, id(DISPID_IHTMLINPUTIMAGE_ALT), displaybind, bindable] BSTR alt();
	[propput, id(DISPID_IHTMLINPUTIMAGE_SRC), displaybind, bindable] void src(BSTR v);
	[propget, id(DISPID_IHTMLINPUTIMAGE_SRC), displaybind, bindable] BSTR src();
	[propput, id(DISPID_IHTMLINPUTIMAGE_LOWSRC), displaybind, bindable] void lowsrc(BSTR v);
	[propget, id(DISPID_IHTMLINPUTIMAGE_LOWSRC), displaybind, bindable] BSTR lowsrc();
	[propput, id(DISPID_IHTMLINPUTIMAGE_VRML), displaybind, bindable] void vrml(BSTR v);
	[propget, id(DISPID_IHTMLINPUTIMAGE_VRML), displaybind, bindable] BSTR vrml();
	[propput, id(DISPID_IHTMLINPUTIMAGE_DYNSRC), displaybind, bindable] void dynsrc(BSTR v);
	[propget, id(DISPID_IHTMLINPUTIMAGE_DYNSRC), displaybind, bindable] BSTR dynsrc();
	[propget, id(DISPID_IHTMLINPUTIMAGE_READYSTATE)] BSTR readyState();
	[propget, id(DISPID_IHTMLINPUTIMAGE_COMPLETE)] VARIANT_BOOL complete();
	[propput, id(DISPID_IHTMLINPUTIMAGE_LOOP), displaybind, bindable] void loop(VARIANT v);
	[propget, id(DISPID_IHTMLINPUTIMAGE_LOOP), displaybind, bindable] VARIANT loop();
	[propput, id(DISPID_IHTMLINPUTIMAGE_ALIGN), displaybind, bindable] void align(BSTR v);
	[propget, id(DISPID_IHTMLINPUTIMAGE_ALIGN), displaybind, bindable] BSTR align();
	[propput, id(DISPID_IHTMLINPUTIMAGE_ONLOAD), displaybind, bindable] void onload(VARIANT v);
	[propget, id(DISPID_IHTMLINPUTIMAGE_ONLOAD), displaybind, bindable] VARIANT onload();
	[propput, id(DISPID_IHTMLINPUTIMAGE_ONERROR), displaybind, bindable] void onerror(VARIANT v);
	[propget, id(DISPID_IHTMLINPUTIMAGE_ONERROR), displaybind, bindable] VARIANT onerror();
	[propput, id(DISPID_IHTMLINPUTIMAGE_ONABORT), displaybind, bindable] void onabort(VARIANT v);
	[propget, id(DISPID_IHTMLINPUTIMAGE_ONABORT), displaybind, bindable] VARIANT onabort();
	[propput, id(DISPID_IHTMLINPUTIMAGE_NAME), displaybind, bindable] void name(BSTR v);
	[propget, id(DISPID_IHTMLINPUTIMAGE_NAME), displaybind, bindable] BSTR name();
	[propput, id(DISPID_IHTMLINPUTIMAGE_WIDTH)] void width(long v);
	[propget, id(DISPID_IHTMLINPUTIMAGE_WIDTH)] long width();
	[propput, id(DISPID_IHTMLINPUTIMAGE_HEIGHT)] void height(long v);
	[propget, id(DISPID_IHTMLINPUTIMAGE_HEIGHT)] long height();
	[propput, id(DISPID_IHTMLINPUTIMAGE_START), displaybind, bindable] void start(BSTR v);
	[propget, id(DISPID_IHTMLINPUTIMAGE_START), displaybind, bindable] BSTR start();
};
[uuid(3050f2c4-98b5-11cf-bb82-00aa00bdce0b)]
coclass HTMLInputImage
{
	[default]			dispinterface DispIHTMLInputImage;
	[source, default]	dispinterface HTMLInputImageEvents;
						interface IHTMLInputImage;
						interface IHTMLControlElement;
						interface IHTMLElement;
};
} 
 
typedef enum _BEHAVIOR_EVENT
{
    BEHAVIOREVENT_FIRST = 0,
    BEHAVIOREVENT_CONTENTREADY = 0,
    BEHAVIOREVENT_DOCUMENTREADY = 1,
    BEHAVIOREVENT_APPLYSTYLE = 2,
    BEHAVIOREVENT_DOCUMENTCONTEXTCHANGE = 3,
    BEHAVIOREVENT_LAST = 3,
    BEHAVIOR_EVENT_Max = 2147483647L
} BEHAVIOR_EVENT;

typedef enum _BEHAVIOR_EVENT_FLAGS
{
    BEHAVIOREVENTFLAGS_BUBBLE = 1,
    BEHAVIOR_EVENT_FLAGS_Max = 2147483647L
} BEHAVIOR_EVENT_FLAGS;

typedef enum _BEHAVIOR_RENDER_INFO
{
    BEHAVIORRENDERINFO_BEFOREBACKGROUND = 0x000001,
    BEHAVIORRENDERINFO_AFTERBACKGROUND = 0x000002,
    BEHAVIORRENDERINFO_BEFORECONTENT = 0x000004,
    BEHAVIORRENDERINFO_AFTERCONTENT = 0x000008,
    BEHAVIORRENDERINFO_AFTERFOREGROUND = 0x000020,
    BEHAVIORRENDERINFO_ABOVECONTENT = 0x000028,
    BEHAVIORRENDERINFO_ALLLAYERS = 0x0000FF,
    BEHAVIORRENDERINFO_DISABLEBACKGROUND = 0x000100,
    BEHAVIORRENDERINFO_DISABLENEGATIVEZ = 0x000200,
    BEHAVIORRENDERINFO_DISABLECONTENT = 0x000400,
    BEHAVIORRENDERINFO_DISABLEPOSITIVEZ = 0x000800,
    BEHAVIORRENDERINFO_DISABLEALLLAYERS = 0x000F00,
    BEHAVIORRENDERINFO_HITTESTING = 0x001000,
    BEHAVIORRENDERINFO_SURFACE = 0x100000,
    BEHAVIORRENDERINFO_3DSURFACE = 0x200000,
    BEHAVIOR_RENDER_INFO_Max = 2147483647L
} BEHAVIOR_RENDER_INFO;

typedef enum _BEHAVIOR_RELATION
{
    BEHAVIOR_FIRSTRELATION = 0,
    BEHAVIOR_SAMEELEMENT = 0,
    BEHAVIOR_PARENT = 1,
    BEHAVIOR_CHILD = 2,
    BEHAVIOR_SIBLING = 3,
    BEHAVIOR_LASTRELATION = 3,
    BEHAVIOR_RELATION_Max = 2147483647L
} BEHAVIOR_RELATION;

[
    object,
    pointer_default(unique),
    uuid(3050f427-98b5-11cf-bb82-00aa00bdce0b)
]
interface IElementBehaviorSite : IUnknown
{
    [] HRESULT GetElement([retval, out] IHTMLElement** ppElement);
    [] HRESULT RegisterNotification([in] LONG lEvent);
};
[
    object,
    pointer_default(unique),
    uuid(3050f425-98b5-11cf-bb82-00aa00bdce0b)
]
interface IElementBehavior : IUnknown
{
    [] HRESULT Init([in] IElementBehaviorSite* pBehaviorSite);
    [] HRESULT Notify([in] LONG lEvent,[in, out] VARIANT* pVar);
    [] HRESULT Detach();
};
[
    object,
    pointer_default(unique),
    uuid(3050f429-98b5-11cf-bb82-00aa00bdce0b)
]
interface IElementBehaviorFactory : IUnknown
{
    [] HRESULT FindBehavior([in] BSTR bstrBehavior,[in] BSTR bstrBehaviorUrl,[in] IElementBehaviorSite* pSite,[retval, out] IElementBehavior** ppBehavior);
};
[
    object,
    pointer_default(unique),
    uuid(3050f489-98b5-11cf-bb82-00aa00bdce0b)
]
interface IElementBehaviorSiteOM : IUnknown
{
    [] HRESULT RegisterEvent([in] LPOLESTR pchEvent,[in] LONG lFlags,[retval, out] LONG* plCookie);
    [] HRESULT GetEventCookie([in] LPOLESTR pchEvent,[retval, out] LONG* plCookie);
    [] HRESULT FireEvent([in] LONG lCookie,[in] IHTMLEventObj* pEventObject);
    [] HRESULT CreateEventObject([retval, out] IHTMLEventObj** ppEventObject);
    [] HRESULT RegisterName([in] LPOLESTR pchName);
    [] HRESULT RegisterUrn([in] LPOLESTR pchUrn);
};
[
    object,
    pointer_default(unique),
    uuid(3050f4aa-98b5-11cf-bb82-00aa00bdce0b)
]
interface IElementBehaviorRender : IUnknown
{
    [] HRESULT Draw([in] HDC hdc,[in] LONG lLayer,[in] RECT* pRect,[in] IUnknown* pReserved);
    [] HRESULT GetRenderInfo([retval, out] LONG* plRenderInfo);
    [] HRESULT HitTestPoint([in] POINT* pPoint,[in] IUnknown* pReserved,[retval, out] BOOL* pbHit);
};
[
    object,
    pointer_default(unique),
    uuid(3050f4a7-98b5-11cf-bb82-00aa00bdce0b)
]
interface IElementBehaviorSiteRender : IUnknown
{
    [] HRESULT Invalidate([in] RECT* pRect);
    [] HRESULT InvalidateRenderInfo();
    [] HRESULT InvalidateStyle();
};
[
    object,
    pointer_default(unique),
    uuid(3050f4ed-98b5-11cf-bb82-00aa00bdce0b)
]
interface IElementBehaviorCategory : IUnknown
{
    [] HRESULT GetCategory([retval, out] LPOLESTR* ppchCategory);
};
[
    object,
    pointer_default(unique),
    uuid(3050f4ee-98b5-11cf-bb82-00aa00bdce0b)
]
interface IElementBehaviorSiteCategory : IUnknown
{
    [] HRESULT GetRelatedBehaviors([in] LONG lDirection,[in] LPOLESTR pchCategory,[retval, out] IEnumUnknown** ppEnumerator);
};
 
