// Generated IDL File (by Great Migrations Studio) 
// Created: 12/3/2025 09:32:49 AM
// Source: C:\windows\SysWow64\mscomctl.ocx
// typelib filename: mscomctl.ocx
[
    uuid(831FDD16-0C5C-11D2-A9FC-0000F8754DA1),
    version(2.0),
    helpstring("Microsoft Windows Common Controls 6.0 (SP4)"),
    helpfile("C:\windows\HELP\cmctl198.chm"),
    helpcontext(0x00033450),
    control
]
library MSComctlLib
{
    // TLib : OLE Automation : {00020430-0000-0000-C000-000000000046}
    importlib("stdole2.tlb");

    // Forward declare all types defined in this typelib

    interface IVBDataObject;
    interface IVBDataObjectFiles;
    interface ITabStrip;
    dispinterface ITabStripEvents;
    interface ITabs;
    interface ITab;
    interface IToolbar;
    dispinterface IToolbarEvents;
    interface IButtons;
    interface IButton;
    interface IButtonMenus;
    interface IButtonMenu;
    interface IStatusBar;
    dispinterface IStatusBarEvents;
    interface IPanels;
    interface IPanel;
    interface IProgressBar;
    dispinterface IProgressBarEvents;
    interface ITreeView;
    dispinterface ITreeViewEvents;
    interface INodes;
    interface INode;
    interface IListView;
    dispinterface ListViewEvents;
    interface IListItems;
    interface IListItem;
    interface IColumnHeaders;
    interface IColumnHeader;
    interface IListSubItems;
    interface IListSubItem;
    interface IImageList;
    dispinterface ImageListEvents;
    interface IImages;
    interface IImage;
    interface ISlider;
    dispinterface ISliderEvents;
    interface IControls;
    interface IComboItem;
    interface IComboItems;
    interface IImageCombo;
    dispinterface DImageComboEvents;
    coclass DataObject;
    coclass DataObjectFiles;
    coclass TabStrip;
    coclass Tabs;
    coclass Tab;
    coclass Toolbar;
    coclass Buttons;
    coclass Button;
    coclass ButtonMenus;
    coclass ButtonMenu;
    coclass StatusBar;
    coclass Panels;
    coclass Panel;
    coclass ProgressBar;
    coclass TreeView;
    coclass Nodes;
    coclass Node;
    coclass ListView;
    coclass ListItems;
    coclass ListItem;
    coclass ColumnHeaders;
    coclass ColumnHeader;
    coclass ListSubItems;
    coclass ListSubItem;
    coclass ImageList;
    coclass ListImages;
    coclass ListImage;
    coclass Slider;
    coclass Controls;
    coclass ComboItem;
    coclass ComboItems;
    coclass ImageCombo;

    [
        odl,
        uuid(2334D2B1-713E-11CF-8AE5-00AA00C00905),
        hidden,
        dual,
        nonextensible,
        oleautomation
    ]
    interface IVBDataObject : IDispatch {
        [id(0x00000001), helpstring("Clears all data and formats in a DataObject object."), helpcontext(0x00033693)]
        HRESULT Clear();
        [id(0x00000002), helpstring("Retrieves data of a specified format from a DataObject object."), helpcontext(0x00033694)]
        HRESULT GetData(
            [in] short sFormat,
            [out, retval] VARIANT* pvData);
        [id(0x00000003), helpstring("Determines if a specified clipboard format is supported by the DataObject object."), helpcontext(0x00033695)]
        HRESULT GetFormat(
            [in] short sFormat,
            [out, retval] VARIANT_BOOL* pbFormatSupported);
        [id(0x00000004), helpstring("Adds a supported format and possibly its data to a DataObject object."), helpcontext(0x00033696)]
        HRESULT SetData(
            [in, optional] VARIANT vValue,
            [in, optional] VARIANT vFormat);
        [id(0x00000005), propget, helpstring("A collection of filenames used by the vbCFFiles format."), helpcontext(0x00033697)]
        HRESULT Files([out, retval] IVBDataObjectFiles** pFiles);
    };

    [
        uuid(2334D2B2-713E-11CF-8AE5-00AA00C00905),
        noncreatable
    ]
    coclass DataObject {
        [default] interface IVBDataObject;
    };

    [
        odl,
        uuid(2334D2B3-713E-11CF-8AE5-00AA00C00905),
        hidden,
        dual,
        nonextensible,
        oleautomation
    ]
    interface IVBDataObjectFiles : IDispatch {
        [id(00000000), propget, helpstring("Returns a specific filename by index from the Files collection of a DataObject object (vbCFFiles format only)."), helpcontext(0x00033698)]
        HRESULT Item(
            [in] long lIndex,
            [out, retval] BSTR* bstrItem);
        [id(0x00000001), propget, helpstring("Returns the number of filenames in the Files collection of a DataObject object (vbCFFiles format only)."), helpcontext(0x00033699)]
        HRESULT Count([out, retval] long* plCount);
        [id(0x00000002), helpstring("Adds a filename to the Files collection of a DataObject object (vbCFFiles format only)."), helpcontext(0x0003369a)]
        HRESULT Add(
            [in] BSTR bstrFilename,
            [in, optional] VARIANT vIndex);
        [id(0x00000003), helpstring("Clears all filenames stored in the Files collection of a DataObject object (vbCFFiles format only)."), helpcontext(0x0003369b)]
        HRESULT Clear();
        [id(0x00000004), helpstring("Removes a filename from the Files collection of a DataObject object (vbCFFiles format only)."), helpcontext(0x0003369c)]
        HRESULT Remove([in] VARIANT vIndex);
        [id(0xfffffffc), hidden]
        HRESULT _NewEnum([out, retval] IUnknown** ppUnk);
    };

    [
        uuid(2334D2B4-713E-11CF-8AE5-00AA00C00905),
        noncreatable
    ]
    coclass DataObjectFiles {
        [default] interface IVBDataObjectFiles;
    };

    typedef [uuid(76B523C0-8579-11D1-B16A-00C0F0283628), helpstring("BorderStyle constants"), helpcontext(0x000336ce)]
    enum {
        ccNone = 0,
        ccFixedSingle = 1
    } BorderStyleConstants;

    typedef [uuid(76B523C1-8579-11D1-B16A-00C0F0283628), helpstring("MousePointer constants"), helpcontext(0x00033451)]
    enum {
        ccDefault = 0,
        ccArrow = 1,
        ccCross = 2,
        ccIBeam = 3,
        ccIcon = 4,
        ccSize = 5,
        ccSizeNESW = 6,
        ccSizeNS = 7,
        ccSizeNWSE = 8,
        ccSizeEW = 9,
        ccUpArrow = 10,
        ccHourglass = 11,
        ccNoDrop = 12,
        ccArrowHourglass = 13,
        ccArrowQuestion = 14,
        ccSizeAll = 15,
        ccCustom = 99
    } MousePointerConstants;

    typedef [uuid(76B523C2-8579-11D1-B16A-00C0F0283628), helpstring("Appearance constants"), helpcontext(0x00033465)]
    enum {
        ccFlat = 0,
        cc3D = 1
    } AppearanceConstants;

    typedef enum {
        vbFlat = 0,
        vb3D = 1
    } VB4AppearanceConstants;

    typedef [uuid(76B523C3-8579-11D1-B16A-00C0F0283628), helpstring("Scrolling constants"), helpcontext(0x00033767)]
    enum {
        ccScrollingStandard = 0,
        ccScrollingSmooth = 1
    } ScrollingConstants;

    typedef [uuid(76B523C4-8579-11D1-B16A-00C0F0283628), helpstring("Slider orientation constants"), helpcontext(0x00033503)]
    enum {
        ccOrientationHorizontal = 0,
        ccOrientationVertical = 1
    } OrientationConstants;

    typedef [uuid(D8898460-742F-11CF-8AEA-00AA00C00905), helpstring("Constants for the OLEDragMode property (but not the DragMode or OLEDropMode properties)."), helpcontext(0x00033677)]
    enum {
        ccOLEDragManual = 0,
        ccOLEDragAutomatic = 1
    } OLEDragConstants;

    typedef [uuid(D8898461-742F-11CF-8AEA-00AA00C00905), helpstring("Constants for the OLEDropMode property (but not the DragMode or OLEDragMode properties)."), helpcontext(0x0003367a)]
    enum {
        ccOLEDropNone = 0,
        ccOLEDropManual = 1
    } OLEDropConstants;

    typedef [uuid(D8898464-742F-11CF-8AEA-00AA00C00905), helpstring("State transition constants for the DragOver and OLEDragOver events."), helpcontext(0x0003367d)]
    enum {
        ccEnter = 0,
        ccLeave = 1,
        ccOver = 2
    } DragOverConstants;

    typedef [uuid(D8898462-742F-11CF-8AEA-00AA00C00905), helpstring("Clipboard format constants."), helpcontext(0x00033681)]
    enum {
        ccCFText = 1,
        ccCFBitmap = 2,
        ccCFMetafile = 3,
        ccCFDIB = 8,
        ccCFPalette = 9,
        ccCFEMetafile = 14,
        ccCFFiles = 15,
        ccCFRTF = 0xffffbf01
    } ClipBoardConstants;

    typedef [uuid(D8898463-742F-11CF-8AEA-00AA00C00905), helpstring("Drop effect constants for OLE drag and drop events."), helpcontext(0x0003368a)]
    enum {
        ccOLEDropEffectNone = 0,
        ccOLEDropEffectCopy = 1,
        ccOLEDropEffectMove = 2,
        ccOLEDropEffectScroll = 0x80000000
    } OLEDropEffectConstants;

    typedef [uuid(76B523C5-8579-11D1-B16A-00C0F0283628), helpstring("Error constants"), helpcontext(0x0003369d)]
    enum {
        ccInvalidProcedureCall = 5,
        ccOutOfMemory = 7,
        ccTypeMismatch = 13,
        ccObjectVariableNotSet = 91,
        ccInvalidPropertyValue = 380,
        ccSetNotSupportedAtRuntime = 382,
        ccSetNotSupported = 383,
        ccSetNotPermitted = 387,
        ccGetNotSupported = 394,
        ccInvalidPicture = 481,
        ccInvalidObjectUse = 425,
        ccWrongClipboardFormat = 461,
        ccDataObjectLocked = 672,
        ccExpectedAnArgument = 673,
        ccRecursiveOleDrag = 674,
        ccFormatNotByteArray = 675,
        ccDataNotSetForFormat = 676,
        ccIndexOutOfBounds = 35600,
        ccElemNotFound = 35601,
        ccNonUniqueKey = 35602,
        ccInvalidKey = 35603,
        ccElemNotPartOfCollection = 35605,
        ccCollectionChangedDuringEnum = 35606,
        ccWouldIntroduceCycle = 35614,
        ccMissingRequiredArg = 35607,
        ccBadObjectReference = 35610,
        ccCircularReference = 35700,
        ccCol1MustBeLeftAligned = 35604,
        ccReadOnlyIfHasImages = 35611,
        ccImageListMustBeInitialized = 35613,
        ccNotSameSize = 35615,
        ccImageListLocked = 35617,
        ccMaxPanelsExceeded = 35616,
        ccMaxButtonsExceeded = 35619,
        ccInvalidSafeModeProcCall = 680
    } ErrorConstants;

    typedef [uuid(1EFB6590-857C-11D1-B16A-00C0F0283628), helpstring("TabWidthStyle constants."), helpcontext(0x00033494)]
    enum {
        tabJustified = 0,
        tabNonJustified = 1,
        tabFixed = 2
    } TabWidthStyleConstants;

    typedef [uuid(1EFB6591-857C-11D1-B16A-00C0F0283628), helpstring("TabStyle constants."), helpcontext(0x00033498)]
    enum {
        tabTabs = 0,
        tabButtons = 1,
        tabFlatButtons = 2
    } TabStyleConstants;

    typedef [uuid(1EFB6592-857C-11D1-B16A-00C0F0283628), helpstring("Placement constants."), helpcontext(0x00033775)]
    enum {
        tabPlacementTop = 0,
        tabPlacementBottom = 1,
        tabPlacementLeft = 2,
        tabPlacementRight = 3
    } PlacementConstants;

    typedef [uuid(1EFB6593-857C-11D1-B16A-00C0F0283628), helpstring("Tab selection style constants."), helpcontext(0x0003377a)]
    enum {
        tabTabStandard = 0,
        tabTabOpposite = 1
    } TabSelStyleConstants;

    [
        odl,
        uuid(1EFB6594-857C-11D1-B16A-00C0F0283628),
        helpstring("Microsoft TabStrip Control"),
        helpcontext(0x00033493),
        dual,
        nonextensible,
        oleautomation
    ]
    interface ITabStrip : IDispatch {
        [id(0x00000004), propget, helpstring("Returns a reference to a collection of Tab objects in the TabStrip control."), helpcontext(0x0003349b)]
        HRESULT Tabs([out, retval] ITabs** ppTabs);
        [id(0x00000004), propputref, helpstring("Returns a reference to a collection of Tab objects in the TabStrip control."), helpcontext(0x0003349b)]
        HRESULT Tabs([in] ITabs* ppTabs);
        [id(0xfffffdfe), propget, bindable, requestedit, helpstring("Returns/sets a value that determines whether a form or control can respond to user-generated events."), helpcontext(0x0003349c)]
        HRESULT Enabled([out, retval] VARIANT_BOOL* pbEnabled);
        [id(0xfffffdfe), propput, bindable, requestedit, helpstring("Returns/sets a value that determines whether a form or control can respond to user-generated events."), helpcontext(0x0003349c)]
        HRESULT Enabled([in] VARIANT_BOOL pbEnabled);
        [id(0xfffffe00), propget, bindable, helpstring("Returns a Font object."), helpcontext(0x0003349d)]
        HRESULT Font([out, retval] stdole.IFontDisp** ppFontDisp);
        [id(0xfffffe00), propputref, bindable, helpstring("Returns a Font object."), helpcontext(0x0003349d)]
        HRESULT Font([in] stdole.IFontDisp* ppFontDisp);
        [id(0xfffffdfd), propget, helpstring("Returns a handle to a form or control."), helpcontext(0x0003349e)]
        HRESULT hWnd([out, retval] stdole.OLE_HANDLE* phWnd);
        [id(0xfffffdfd), propput, helpstring("Returns a handle to a form or control."), helpcontext(0x0003349e)]
        HRESULT hWnd([in] stdole.OLE_HANDLE phWnd);
        [id(0x00000005), propget, helpstring("Sets a custom mouse icon."), helpcontext(0x0003349f)]
        HRESULT MouseIcon([out, retval] stdole.IPictureDisp** ppMouseIcon);
        [id(0x00000005), propput, helpstring("Sets a custom mouse icon."), helpcontext(0x0003349f)]
        HRESULT MouseIcon([in] stdole.IPictureDisp* ppMouseIcon);
        [id(0x00000005), propputref, helpstring("Sets a custom mouse icon."), helpcontext(0x0003349f)]
        HRESULT MouseIcon([in] stdole.IPictureDisp* ppMouseIcon);
        [id(0x00000001), propget, helpstring("Returns/sets a value indicating whether the control can display more than one row of tabs."), helpcontext(0x000334a0)]
        HRESULT MultiRow([out, retval] VARIANT_BOOL* pbMultiRow);
        [id(0x00000001), propput, helpstring("Returns/sets a value indicating whether the control can display more than one row of tabs."), helpcontext(0x000334a0)]
        HRESULT MultiRow([in] VARIANT_BOOL pbMultiRow);
        [id(0x00000006), propget, helpstring("Returns/sets the style appearance (tab or button) of a TabStrip control."), helpcontext(0x000334a1)]
        HRESULT Style([out, retval] TabStyleConstants* psStyle);
        [id(0x00000006), propput, helpstring("Returns/sets the style appearance (tab or button) of a TabStrip control."), helpcontext(0x000334a1)]
        HRESULT Style([in] TabStyleConstants psStyle);
        [id(0x00000007), propget, helpstring("Returns/sets a fixed height of a TabStrip control, but only if the TabWidthStyle is set to tabFixed."), helpcontext(0x000334a2)]
        HRESULT TabFixedWidth([out, retval] short* psTabFixedWidth);
        [id(0x00000007), propput, helpstring("Returns/sets a fixed height of a TabStrip control, but only if the TabWidthStyle is set to tabFixed."), helpcontext(0x000334a2)]
        HRESULT TabFixedWidth([in] short psTabFixedWidth);
        [id(0x00000008), propget, helpstring("Returns/sets the width and justification of all tabs in a TabStrip control."), helpcontext(0x000334a3)]
        HRESULT TabWidthStyle([out, retval] TabWidthStyleConstants* psTabWidthStyle);
        [id(0x00000008), propput, helpstring("Returns/sets the width and justification of all tabs in a TabStrip control."), helpcontext(0x000334a3)]
        HRESULT TabWidthStyle([in] TabWidthStyleConstants psTabWidthStyle);
        [id(0x00000009), propget, helpstring("Returns the top coordinate of the internal area of the control."), helpcontext(0x000334a4)]
        HRESULT ClientTop([out, retval] float* pfClientTop);
        [id(0x00000009), propput, helpstring("Returns the top coordinate of the internal area of the control."), helpcontext(0x000334a4)]
        HRESULT ClientTop([in] float pfClientTop);
        [id(0x0000000a), propget, helpstring("Returns the left coordinate of the internal area of the control."), helpcontext(0x000334a5)]
        HRESULT ClientLeft([out, retval] float* pfClientLeft);
        [id(0x0000000a), propput, helpstring("Returns the left coordinate of the internal area of the control."), helpcontext(0x000334a5)]
        HRESULT ClientLeft([in] float pfClientLeft);
        [id(0x0000000b), propget, helpstring("Returns the height of the internal area of the control."), helpcontext(0x000334a6)]
        HRESULT ClientHeight([out, retval] float* pfClientHeight);
        [id(0x0000000b), propput, helpstring("Returns the height of the internal area of the control."), helpcontext(0x000334a6)]
        HRESULT ClientHeight([in] float pfClientHeight);
        [id(0x0000000c), propget, helpstring("Returns the width of the internal area of the control."), helpcontext(0x000334a7)]
        HRESULT ClientWidth([out, retval] float* pfClientWidth);
        [id(0x0000000c), propput, helpstring("Returns the width of the internal area of the control."), helpcontext(0x000334a7)]
        HRESULT ClientWidth([in] float pfClientWidth);
        [id(0x00000002), propget, helpstring("Returns/sets the type of mouse pointer displayed when over part of an object."), helpcontext(0x000334a8)]
        HRESULT MousePointer([out, retval] MousePointerConstants* psMousePointer);
        [id(0x00000002), propput, helpstring("Returns/sets the type of mouse pointer displayed when over part of an object."), helpcontext(0x000334a8)]
        HRESULT MousePointer([in] MousePointerConstants psMousePointer);
        [id(0x0000000d), propget, helpstring("Returns/sets the ImageList control to be used."), helpcontext(0x000334a9)]
        HRESULT ImageList([out, retval] IDispatch** ppImageList);
        [id(0x0000000d), propput, helpstring("Returns/sets the ImageList control to be used."), helpcontext(0x000334a9)]
        HRESULT ImageList([in] IDispatch* ppImageList);
        [id(0x0000000d), propputref, helpstring("Returns/sets the ImageList control to be used."), helpcontext(0x000334a9)]
        HRESULT ImageList([in] IDispatch* ppImageList);
        [id(0x0000000e), propget, helpstring("Returns/sets a fixed height of a TabStrip control, but only if the TabWidthStyle is set to tabFixed."), helpcontext(0x000334aa)]
        HRESULT TabFixedHeight([out, retval] short* psTabFixedHeight);
        [id(0x0000000e), propput, helpstring("Returns/sets a fixed height of a TabStrip control, but only if the TabWidthStyle is set to tabFixed."), helpcontext(0x000334aa)]
        HRESULT TabFixedHeight([in] short psTabFixedHeight);
        [id(0x00000003), propget, helpstring("Enables/disables the Tooltip text"), helpcontext(0x000334ab)]
        HRESULT ShowTips([out, retval] VARIANT_BOOL* pbShowTips);
        [id(0x00000003), propput, helpstring("Enables/disables the Tooltip text"), helpcontext(0x000334ab)]
        HRESULT ShowTips([in] VARIANT_BOOL pbShowTips);
        [id(0x0000000f), propget, helpstring("Returns/sets the selected Tab"), helpcontext(0x000334ac)]
        HRESULT SelectedItem([out, retval] ITab** ppSelectedItem);
        [id(0x0000000f), propputref, helpstring("Returns/sets the selected Tab"), helpcontext(0x000334ac)]
        HRESULT SelectedItem([in] ITab* ppSelectedItem);
        [id(0x0000000f), propput, helpstring("Returns/sets the selected Tab"), helpcontext(0x000334ac)]
        HRESULT SelectedItem([in] VARIANT* ppSelectedItem);
        [id(0x0000060f), propget, helpstring("Returns/Sets whether this control can act as an OLE drop target."), helpcontext(0x00033692)]
        HRESULT OLEDropMode([out, retval] OLEDropConstants* psOLEDropMode);
        [id(0x0000060f), propput, helpstring("Returns/Sets whether this control can act as an OLE drop target."), helpcontext(0x00033692)]
        HRESULT OLEDropMode([in] OLEDropConstants psOLEDropMode);
        [id(0xfffffdda), helpstring("Forces a complete repaint of a form or control."), helpcontext(0x000334ad)]
        HRESULT Refresh();
        [id(0x00000610), helpstring("Starts an OLE drag/drop event with the given control as the source."), helpcontext(0x00033690)]
        HRESULT OLEDrag();
        [id(0xfffffdd8), hidden]
        HRESULT AboutBox();
        [id(0x00000010), propget, bindable, requestedit, helpstring("Returns/sets a value that determines whether the tab under the cursor is highlighted."), helpcontext(0x0003377d)]
        HRESULT HotTracking([out, retval] VARIANT_BOOL* pbHotTracking);
        [id(0x00000010), propput, bindable, requestedit, helpstring("Returns/sets a value that determines whether the tab under the cursor is highlighted."), helpcontext(0x0003377d)]
        HRESULT HotTracking([in] VARIANT_BOOL pbHotTracking);
        [id(0x00000011), propget, bindable, requestedit, helpstring("Returns/sets a value that determines whether multiple tabs can be selected while holding down the CTRL key."), helpcontext(0x0003377e)]
        HRESULT MultiSelect([out, retval] VARIANT_BOOL* pbMultiSelect);
        [id(0x00000011), propput, bindable, requestedit, helpstring("Returns/sets a value that determines whether multiple tabs can be selected while holding down the CTRL key."), helpcontext(0x0003377e)]
        HRESULT MultiSelect([in] VARIANT_BOOL pbMultiSelect);
        [id(0x00000012), propget, helpstring("Returns/sets a value that indicates on which side of the control the tabs will be displayed."), helpcontext(0x0003377f)]
        HRESULT Placement([out, retval] PlacementConstants* penumPlacement);
        [id(0x00000012), propput, helpstring("Returns/sets a value that indicates on which side of the control the tabs will be displayed."), helpcontext(0x0003377f)]
        HRESULT Placement([in] PlacementConstants penumPlacement);
        [id(0x00000013), propget, bindable, requestedit, helpstring("Returns/sets a value that determines whether separators are drawn between buttons on a tabstrip that has the tabButton or tabFlatButton styles."), helpcontext(0x00033780)]
        HRESULT Separators([out, retval] VARIANT_BOOL* pbSeparators);
        [id(0x00000013), propput, bindable, requestedit, helpstring("Returns/sets a value that determines whether separators are drawn between buttons on a tabstrip that has the tabButton or tabFlatButton styles."), helpcontext(0x00033780)]
        HRESULT Separators([in] VARIANT_BOOL pbSeparators);
        [id(0x00000014), propget, helpstring("Returns/sets a value that determines the minimum width of a tab."), helpcontext(0x00033781)]
        HRESULT TabMinWidth([out, retval] float* pflTabMinWidth);
        [id(0x00000014), propput, helpstring("Returns/sets a value that determines the minimum width of a tab."), helpcontext(0x00033781)]
        HRESULT TabMinWidth([in] float pflTabMinWidth);
        [id(0x00000015), propget, helpstring("Returns/sets a value that determines how remaining tabs are positioned when a new tab is selected."), helpcontext(0x00033782)]
        HRESULT TabStyle([out, retval] TabSelStyleConstants* penumTabStyle);
        [id(0x00000015), propput, helpstring("Returns/sets a value that determines how remaining tabs are positioned when a new tab is selected."), helpcontext(0x00033782)]
        HRESULT TabStyle([in] TabSelStyleConstants penumTabStyle);
        [id(0x00000016), helpstring("Deselects all currently selected tabs."), helpcontext(0x00033783)]
        HRESULT DeselectAll();
    };

    [
        uuid(1EFB6595-857C-11D1-B16A-00C0F0283628),
        nonextensible
    ]
    dispinterface ITabStripEvents {
    properties:
    methods:
        [id(0xfffffda8), helpstring("Occurs when the user presses and then releases a mouse button over an object."), helpcontext(0x000334ae)]
        void Click();
        [id(0xfffffda6), helpstring("Occurs when the user presses a key while an object has the focus."), helpcontext(0x000334af)]
        void KeyDown(
            short* KeyCode,
            short Shift);
        [id(0xfffffda5), helpstring("Occurs when the user presses and releases an ANSI key."), helpcontext(0x000334b0)]
        void KeyPress(short* KeyAscii);
        [id(0xfffffda4), helpstring("Occurs when the user releases a key while an object has the focus."), helpcontext(0x000334b1)]
        void KeyUp(
            short* KeyCode,
            short Shift);
        [id(0xfffffda3), helpstring("Occurs when the user presses the mouse button while an object has the focus."), helpcontext(0x000334b2)]
        void MouseDown(
            short Button,
            short Shift,
            stdole.OLE_XPOS_PIXELS x,
            stdole.OLE_YPOS_PIXELS y);
        [id(0xfffffda2), helpstring("Occurs when the user moves the mouse."), helpcontext(0x000334b3)]
        void MouseMove(
            short Button,
            short Shift,
            stdole.OLE_XPOS_PIXELS x,
            stdole.OLE_YPOS_PIXELS y);
        [id(0xfffffda1), helpstring("Occurs when the user releases the mouse button while an object has the focus."), helpcontext(0x000334b4)]
        void MouseUp(
            short Button,
            short Shift,
            stdole.OLE_XPOS_PIXELS x,
            stdole.OLE_YPOS_PIXELS y);
        [id(0x00000001), helpstring("Generated when a Tab object is clicked, or the tab's Value setting has been changed. Used to check parameters before actually generating a Click event."), helpcontext(0x000334b5)]
        void BeforeClick(short* Cancel);
        [id(0x0000060e), helpstring("OLEStartDrag event"), helpcontext(0x000336cf)]
        void OLEStartDrag(
            [in, out] DataObject** Data,
            [in, out] long* AllowedEffects);
        [id(0x0000060f), helpstring("OLEGiveFeedback event"), helpcontext(0x000336d0)]
        void OLEGiveFeedback(
            [in, out] long* Effect,
            [in, out] VARIANT_BOOL* DefaultCursors);
        [id(0x00000610), helpstring("OLESetData event"), helpcontext(0x000336d1)]
        void OLESetData(
            [in, out] DataObject** Data,
            [in, out] short* DataFormat);
        [id(0x00000611), helpstring("OLECompleteDrag event"), helpcontext(0x000336d2)]
        void OLECompleteDrag([in, out] long* Effect);
        [id(0x00000612), helpstring("OLEDragOver event"), helpcontext(0x000336d3)]
        void OLEDragOver(
            [in, out] DataObject** Data,
            [in, out] long* Effect,
            [in, out] short* Button,
            [in, out] short* Shift,
            [in, out] float* x,
            [in, out] float* y,
            [in, out] short* State);
        [id(0x00000613), helpstring("OLEDragDrop event"), helpcontext(0x000336d4)]
        void OLEDragDrop(
            [in, out] DataObject** Data,
            [in, out] long* Effect,
            [in, out] short* Button,
            [in, out] short* Shift,
            [in, out] float* x,
            [in, out] float* y);
    };

    [
        uuid(1EFB6596-857C-11D1-B16A-00C0F0283628),
        helpstring("Microsoft TabStrip Control"),
        helpcontext(0x00033493),
        licensed,
        control
    ]
    coclass TabStrip {
        [default] interface ITabStrip;
        [default, source] dispinterface ITabStripEvents;
    };

    [
        odl,
        uuid(1EFB6597-857C-11D1-B16A-00C0F0283628),
        helpstring("StatusBar Tabs collection"),
        helpcontext(0x000334b6),
        hidden,
        dual,
        nonextensible,
        oleautomation
    ]
    interface ITabs : IDispatch {
        [id(0x00000001), propget, helpstring("Returns the number of objects in a collection."), helpcontext(0x000334b7)]
        HRESULT Count([out, retval] short* psCount);
        [id(0x00000001), propput, helpstring("Returns the number of objects in a collection."), helpcontext(0x000334b7)]
        HRESULT Count([in] short psCount);
        [id(00000000), propget, hidden]
        HRESULT ControlDefault(
            [in] VARIANT* pvIndex,
            [out, retval] ITab** ppTab);
        [id(00000000), propputref, hidden]
        HRESULT ControlDefault(
            [in] VARIANT* pvIndex,
            [in] ITab* ppTab);
        [id(0x00000002), propget, helpstring("Returns a specific member of a Collection object either by position or by key."), helpcontext(0x000334b8)]
        HRESULT Item(
            [in] VARIANT* pvIndex,
            [out, retval] ITab** ppTab);
        [id(0x00000002), propputref, helpstring("Returns a specific member of a Collection object either by position or by key."), helpcontext(0x000334b8)]
        HRESULT Item(
            [in] VARIANT* pvIndex,
            [in] ITab* ppTab);
        [id(0x00000003), helpstring("Removes a specific member from a collection."), helpcontext(0x000334b9)]
        HRESULT Remove([in] VARIANT* pvIndex);
        [id(0x00000004), helpstring("Removes all objects in a collection."), helpcontext(0x000334ba)]
        HRESULT Clear();
        [id(0x00000005), helpstring("Adds a Tab object to a Tabs collection."), helpcontext(0x000334bb)]
        HRESULT Add(
            [in, optional] VARIANT* pvIndex,
            [in, optional] VARIANT* pvKey,
            [in, optional] VARIANT* pvCaption,
            [in, optional] VARIANT* pvImage,
            [out, retval, optional] ITab** ppTab);
        [id(0xfffffffc), hidden]
        HRESULT _NewEnum([out, retval] IDispatch** ppNewEnum);
    };

    [
        uuid(1EFB6598-857C-11D1-B16A-00C0F0283628),
        helpstring("Returns a reference to a collection of Tab objects in the TabStrip control."),
        helpcontext(0x0003349b),
        noncreatable
    ]
    coclass Tabs {
        [default] interface ITabs;
    };

    [
        odl,
        uuid(1EFB6599-857C-11D1-B16A-00C0F0283628),
        helpstring("An individual object, analogous to a page, contained in a TabStrip control."),
        helpcontext(0x000334bc),
        dual,
        nonextensible,
        oleautomation
    ]
    interface ITab : IDispatch {
        [id(00000000), propget, hidden]
        HRESULT _ObjectDefault([out, retval] BSTR* pbstrCaption);
        [id(00000000), propput, hidden]
        HRESULT _ObjectDefault([in] BSTR pbstrCaption);
        [id(0x00000002), propget, helpstring("Returns/sets the text displayed in an object's title bar or below an object's icon."), helpcontext(0x000334bd)]
        HRESULT Caption([out, retval] BSTR* pbstrCaption);
        [id(0x00000002), propput, helpstring("Returns/sets the text displayed in an object's title bar or below an object's icon."), helpcontext(0x000334bd)]
        HRESULT Caption([in] BSTR pbstrCaption);
        [id(0x00000001), propget, helpstring("Stores any extra data needed for your program."), helpcontext(0x000334be)]
        HRESULT Tag([out, retval] VARIANT* pvTag);
        [id(0x00000001), propput, helpstring("Stores any extra data needed for your program."), helpcontext(0x000334be)]
        HRESULT Tag([in] VARIANT pvTag);
        [id(0x00000003), propget, helpstring("Returns/sets the index of an object in a collection. Read-only at run time."), helpcontext(0x000334bf)]
        HRESULT Index([out, retval] short* psIndex);
        [id(0x00000003), propput, helpstring("Returns/sets the index of an object in a collection. Read-only at run time."), helpcontext(0x000334bf)]
        HRESULT Index([in] short psIndex);
        [id(0x00000004), propget, helpstring("Returns/sets the unique string of an object in a collection."), helpcontext(0x000334c0)]
        HRESULT Key([out, retval] BSTR* pbstrKey);
        [id(0x00000004), propput, helpstring("Returns/sets the unique string of an object in a collection."), helpcontext(0x000334c0)]
        HRESULT Key([in] BSTR pbstrKey);
        [id(0x00000005), propget, helpstring("Returns/sets the string displayed when a cursor hovers over an object."), helpcontext(0x000334c1)]
        HRESULT ToolTipText([out, retval] BSTR* pbstrToolTipText);
        [id(0x00000005), propput, helpstring("Returns/sets the string displayed when a cursor hovers over an object."), helpcontext(0x000334c1)]
        HRESULT ToolTipText([in] BSTR pbstrToolTipText);
        [id(0x00000006), propget, helpstring("Returns/sets the width of an object."), helpcontext(0x000334c2)]
        HRESULT Width([out, retval] float* pfWidth);
        [id(0x00000006), propput, helpstring("Returns/sets the width of an object."), helpcontext(0x000334c2)]
        HRESULT Width([in] float pfWidth);
        [id(0x00000007), propget, helpstring("Returns/sets the height of an object."), helpcontext(0x000334c3)]
        HRESULT Height([out, retval] float* pfHeight);
        [id(0x00000007), propput, helpstring("Returns/sets the height of an object."), helpcontext(0x000334c3)]
        HRESULT Height([in] float pfHeight);
        [id(0x00000008), propget, helpstring("Returns/sets the distance between the internal top edge of an object and the top edge of its container."), helpcontext(0x000334c4)]
        HRESULT Top([out, retval] float* pfTop);
        [id(0x00000008), propput, helpstring("Returns/sets the distance between the internal top edge of an object and the top edge of its container."), helpcontext(0x000334c4)]
        HRESULT Top([in] float pfTop);
        [id(0x00000009), propget, helpstring("Returns/sets the distance between the internal left edge of an object and the left edge of its container."), helpcontext(0x000334c5)]
        HRESULT Left([out, retval] float* pfLeft);
        [id(0x00000009), propput, helpstring("Returns/sets the distance between the internal left edge of an object and the left edge of its container."), helpcontext(0x000334c5)]
        HRESULT Left([in] float pfLeft);
        [id(0x0000000a), propget, helpstring("Returns/sets a value which determines if a ListItem or Node object is selected."), helpcontext(0x000334c6)]
        HRESULT Selected([out, retval] VARIANT_BOOL* pbSelected);
        [id(0x0000000a), propput, helpstring("Returns/sets a value which determines if a ListItem or Node object is selected."), helpcontext(0x000334c6)]
        HRESULT Selected([in] VARIANT_BOOL pbSelected);
        [id(0x0000000b), propget, helpstring("Returns/sets the index or key of a ListImage object to be used."), helpcontext(0x000334c7)]
        HRESULT Image([out, retval] VARIANT* pvImage);
        [id(0x0000000b), propput, helpstring("Returns/sets the index or key of a ListImage object to be used."), helpcontext(0x000334c7)]
        HRESULT Image([in] VARIANT pvImage);
        [id(0x0000000c), propget, helpstring("Returns/sets a value that indicates whether the Tab is highlighted.."), helpcontext(0x00033784)]
        HRESULT HighLighted([out, retval] VARIANT_BOOL* pbHighLighted);
        [id(0x0000000c), propput, helpstring("Returns/sets a value that indicates whether the Tab is highlighted.."), helpcontext(0x00033784)]
        HRESULT HighLighted([in] VARIANT_BOOL pbHighLighted);
        [id(0x00000001), propputref, helpstring("Stores any extra data needed for your program."), helpcontext(0x000334be)]
        HRESULT Tag([in] VARIANT pvTag);
    };

    [
        uuid(1EFB659A-857C-11D1-B16A-00C0F0283628),
        helpstring("Returns a reference to a collection of Tab objects in the TabStrip control."),
        helpcontext(0x0003349b),
        noncreatable
    ]
    coclass Tab {
        [default] interface ITab;
    };

    typedef [uuid(66833FE0-8583-11D1-B16A-00C0F0283628), helpstring("Toolbar Button Style constants."), helpcontext(0x000334c9)]
    enum {
        tbrDefault = 0,
        tbrCheck = 1,
        tbrButtonGroup = 2,
        tbrSeparator = 3,
        tbrPlaceholder = 4,
        tbrDropdown = 5
    } ButtonStyleConstants;

    typedef [uuid(66833FE1-8583-11D1-B16A-00C0F0283628), helpstring("Toolbar Value constants."), helpcontext(0x000334cf)]
    enum {
        tbrUnpressed = 0,
        tbrPressed = 1
    } ValueConstants;

    typedef [uuid(66833FE2-8583-11D1-B16A-00C0F0283628), helpstring("Toolbar Style constants."), helpcontext(0x0003378f)]
    enum {
        tbrStandard = 0,
        tbrFlat = 1
    } ToolbarStyleConstants;

    typedef [uuid(66833FE3-8583-11D1-B16A-00C0F0283628), helpstring("Toolbar Text Alignment constants."), helpcontext(0x000337a5)]
    enum {
        tbrTextAlignBottom = 0,
        tbrTextAlignRight = 1
    } ToolbarTextAlignConstants;

    [
        odl,
        uuid(66833FE4-8583-11D1-B16A-00C0F0283628),
        helpstring("Microsoft Toolbar Control"),
        helpcontext(0x000334c8),
        hidden,
        dual,
        nonextensible,
        oleautomation
    ]
    interface IToolbar : IDispatch {
        [id(0xfffffdf8), propget, helpstring("Returns/sets whether or not controls, Forms or an MDIForm are painted at run time with 3-D effects."), helpcontext(0x000334e9)]
        HRESULT Appearance([out, retval] AppearanceConstants* pnAppearance);
        [id(0xfffffdf8), propput, helpstring("Returns/sets whether or not controls, Forms or an MDIForm are painted at run time with 3-D effects."), helpcontext(0x000334e9)]
        HRESULT Appearance([in] AppearanceConstants pnAppearance);
        [id(0x00000002), propget, helpstring("Returns/sets a value which determines if users can customize the Toolbar."), helpcontext(0x000334ea)]
        HRESULT AllowCustomize([out, retval] VARIANT_BOOL* pbAllowCustomize);
        [id(0x00000002), propput, helpstring("Returns/sets a value which determines if users can customize the Toolbar."), helpcontext(0x000334ea)]
        HRESULT AllowCustomize([in] VARIANT_BOOL pbAllowCustomize);
        [id(0x00000003), propget, helpstring("Returns a reference to a Toolbar control's collection of Button objects."), helpcontext(0x000334eb)]
        HRESULT Buttons([out, retval] IButtons** ppButtons);
        [id(0x00000003), propputref, helpstring("Returns a reference to a Toolbar control's collection of Button objects."), helpcontext(0x000334eb)]
        HRESULT Buttons([in] IButtons* ppButtons);
        [id(0x0000000f), propget, helpstring("ToolBar Controls Collection"), helpcontext(0x000334f6)]
        HRESULT Controls([out, retval] IControls** ppControls);
        [id(0xfffffdfe), propget, bindable, requestedit, helpstring("Returns/sets a value that determines whether a form or control can respond to user-generated events."), helpcontext(0x000334ec)]
        HRESULT Enabled([out, retval] VARIANT_BOOL* pbEnabled);
        [id(0xfffffdfe), propput, bindable, requestedit, helpstring("Returns/sets a value that determines whether a form or control can respond to user-generated events."), helpcontext(0x000334ec)]
        HRESULT Enabled([in] VARIANT_BOOL pbEnabled);
        [id(0xfffffdfd), propget, helpstring("Returns a handle to a form or control."), helpcontext(0x000334ed)]
        HRESULT hWnd([out, retval] stdole.OLE_HANDLE* phWnd);
        [id(0xfffffdfd), propput, helpstring("Returns a handle to a form or control."), helpcontext(0x000334ed)]
        HRESULT hWnd([in] stdole.OLE_HANDLE phWnd);
        [id(0x00000004), propget, helpstring("Sets a custom mouse icon."), helpcontext(0x000334ee)]
        HRESULT MouseIcon([out, retval] stdole.IPictureDisp** ppMouseIcon);
        [id(0x00000004), propput, helpstring("Sets a custom mouse icon."), helpcontext(0x000334ee)]
        HRESULT MouseIcon([in] stdole.IPictureDisp* ppMouseIcon);
        [id(0x00000004), propputref, helpstring("Sets a custom mouse icon."), helpcontext(0x000334ee)]
        HRESULT MouseIcon([in] stdole.IPictureDisp* ppMouseIcon);
        [id(0x00000001), propget, helpstring("Returns/sets the type of mouse pointer displayed when over part of an object."), helpcontext(0x000334ef)]
        HRESULT MousePointer([out, retval] MousePointerConstants* psMousePointer);
        [id(0x00000001), propput, helpstring("Returns/sets the type of mouse pointer displayed when over part of an object."), helpcontext(0x000334ef)]
        HRESULT MousePointer([in] MousePointerConstants psMousePointer);
        [id(0x00000005), propget, helpstring("Returns/sets the ImageList control to be used for storing normal images."), helpcontext(0x000334f0)]
        HRESULT ImageList([out, retval] IDispatch** ppImageList);
        [id(0x00000005), propput, helpstring("Returns/sets the ImageList control to be used for storing normal images."), helpcontext(0x000334f0)]
        HRESULT ImageList([in] IDispatch* ppImageList);
        [id(0x00000005), propputref, helpstring("Returns/sets the ImageList control to be used for storing normal images."), helpcontext(0x000334f0)]
        HRESULT ImageList([in] IDispatch* ppImageList);
        [id(0x00000006), propget, helpstring("Enables/disables ToolTips for tool buttons"), helpcontext(0x000334f1)]
        HRESULT ShowTips([out, retval] VARIANT_BOOL* bShowTips);
        [id(0x00000006), propput, helpstring("Enables/disables ToolTips for tool buttons"), helpcontext(0x000334f1)]
        HRESULT ShowTips([in] VARIANT_BOOL bShowTips);
        [id(0xfffffe08), propget, bindable, requestedit, helpstring("Returns/sets the border style"), helpcontext(0x000334f2)]
        HRESULT BorderStyle([out, retval] BorderStyleConstants* psBorderStyle);
        [id(0xfffffe08), propput, bindable, requestedit, helpstring("Returns/sets the border style"), helpcontext(0x000334f2)]
        HRESULT BorderStyle([in] BorderStyleConstants psBorderStyle);
        [id(0x00000007), propget, helpstring("Returns/sets whether buttons can be wrapped or not"), helpcontext(0x000334f3)]
        HRESULT Wrappable([out, retval] VARIANT_BOOL* pbWrappable);
        [id(0x00000007), propput, helpstring("Returns/sets whether buttons can be wrapped or not"), helpcontext(0x000334f3)]
        HRESULT Wrappable([in] VARIANT_BOOL pbWrappable);
        [id(0x00000008), propget, helpstring("Returns/sets the height of the buttons"), helpcontext(0x000334f4)]
        HRESULT ButtonHeight([out, retval] float* pfButtonHeight);
        [id(0x00000008), propput, helpstring("Returns/sets the height of the buttons"), helpcontext(0x000334f4)]
        HRESULT ButtonHeight([in] float pfButtonHeight);
        [id(0x00000009), propget, helpstring("Returns/sets the width of the buttons"), helpcontext(0x000334f5)]
        HRESULT ButtonWidth([out, retval] float* pfButtonWidth);
        [id(0x00000009), propput, helpstring("Returns/sets the width of the buttons"), helpcontext(0x000334f5)]
        HRESULT ButtonWidth([in] float pfButtonWidth);
        [id(0x0000000d), propget, helpstring("Help context of topic to be displayed when inquiring help from Toolbar Customize dialog."), helpcontext(0x000336ac)]
        HRESULT HelpContextID([out, retval] long* plHelpContextID);
        [id(0x0000000d), propput, helpstring("Help context of topic to be displayed when inquiring help from Toolbar Customize dialog."), helpcontext(0x000336ac)]
        HRESULT HelpContextID([in] long plHelpContextID);
        [id(0x0000000e), propget, helpstring("Help file to be used when inquiring help from Toolbar Customize dialog."), helpcontext(0x000336ca)]
        HRESULT HelpFile([out, retval] BSTR* pbstrHelpFile);
        [id(0x0000000e), propput, helpstring("Help file to be used when inquiring help from Toolbar Customize dialog."), helpcontext(0x000336ca)]
        HRESULT HelpFile([in] BSTR pbstrHelpFile);
        [id(0x0000060f), propget, helpstring("Returns/Sets whether this control can act as an OLE drop target."), helpcontext(0x00033692)]
        HRESULT OLEDropMode([out, retval] OLEDropConstants* psOLEDropMode);
        [id(0x0000060f), propput, helpstring("Returns/Sets whether this control can act as an OLE drop target."), helpcontext(0x00033692)]
        HRESULT OLEDropMode([in] OLEDropConstants psOLEDropMode);
        [id(0xfffffdda), helpstring("Forces a complete repaint of a form or control."), helpcontext(0x000334f7)]
        HRESULT Refresh();
        [id(0x0000000a), helpstring("Invokes the Customize Toolbar dialog box when the user double-clicks on a Toolbar control."), helpcontext(0x000334f8)]
        HRESULT Customize();
        [id(0x0000000b), helpstring("Saves a Toolbar configuration in an initialization (.ini) file."), helpcontext(0x000334f9)]
        HRESULT SaveToolbar(
            [in] BSTR Key,
            [in] BSTR Subkey,
            [in] BSTR Value);
        [id(0x0000000c), helpstring("Restores a toolbar, created with a Toolbar control, to its original state after being customized."), helpcontext(0x000334fa)]
        HRESULT RestoreToolbar(
            [in] BSTR Key,
            [in] BSTR Subkey,
            [in] BSTR Value);
        [id(0x00000610), helpstring("Starts an OLE drag/drop event with the given control as the source."), helpcontext(0x00033690)]
        HRESULT OLEDrag();
        [id(0xfffffdd8), hidden]
        HRESULT AboutBox();
        [id(0x00000011), propget, helpstring("Returns/sets the ImageList control to be used for storing images displayed when a button is in a disabled state."), helpcontext(0x000337a2)]
        HRESULT DisabledImageList([out, retval] IDispatch** ppDisabledImageList);
        [id(0x00000011), propput, helpstring("Returns/sets the ImageList control to be used for storing images displayed when a button is in a disabled state."), helpcontext(0x000337a2)]
        HRESULT DisabledImageList([in] IDispatch* ppDisabledImageList);
        [id(0x00000011), propputref, helpstring("Returns/sets the ImageList control to be used for storing images displayed when a button is in a disabled state."), helpcontext(0x000337a2)]
        HRESULT DisabledImageList([in] IDispatch* ppDisabledImageList);
        [id(0x00000012), propget, helpstring("Returns/sets the ImageList control to be used for storing images displayed when a button is highlighted."), helpcontext(0x000337a3)]
        HRESULT HotImageList([out, retval] IDispatch** ppHotImageList);
        [id(0x00000012), propput, helpstring("Returns/sets the ImageList control to be used for storing images displayed when a button is highlighted."), helpcontext(0x000337a3)]
        HRESULT HotImageList([in] IDispatch* ppHotImageList);
        [id(0x00000012), propputref, helpstring("Returns/sets the ImageList control to be used for storing images displayed when a button is highlighted."), helpcontext(0x000337a3)]
        HRESULT HotImageList([in] IDispatch* ppHotImageList);
        [id(0x00000010), propget, helpstring("Returns/sets a value that determines how the Toolbar is drawn."), helpcontext(0x00033792)]
        HRESULT Style([out, retval] ToolbarStyleConstants* penumStyle);
        [id(0x00000010), propput, helpstring("Returns/sets a value that determines how the Toolbar is drawn."), helpcontext(0x00033792)]
        HRESULT Style([in] ToolbarStyleConstants penumStyle);
        [id(0x00000013), propget, helpstring("Returns/sets a value that determines whether button text is displayed below or to the right of the button image."), helpcontext(0x000337a8)]
        HRESULT TextAlignment([out, retval] ToolbarTextAlignConstants* penumTextAlignment);
        [id(0x00000013), propput, helpstring("Returns/sets a value that determines whether button text is displayed below or to the right of the button image."), helpcontext(0x000337a8)]
        HRESULT TextAlignment([in] ToolbarTextAlignConstants penumTextAlignment);
    };

    [
        uuid(66833FE5-8583-11D1-B16A-00C0F0283628),
        helpstring("Event interface for Toolbar Control"),
        helpcontext(0x000336b3)
    ]
    dispinterface IToolbarEvents {
    properties:
    methods:
        [id(0x00000001), helpstring("Occurs when the user clicks on a Button object in a Toolbar control."), helpcontext(0x000334fb)]
        void ButtonClick(Button* Button);
        [id(0x00000002), helpstring("Generated after the end user customizes a Toolbar control's appearance using the Customize Toolbar dialog box."), helpcontext(0x000334fc)]
        void Change();
        [id(0xfffffda8), helpstring("Occurs when the user presses and then releases a mouse button over an object."), helpcontext(0x000334fd)]
        void Click();
        [id(0xfffffda3), helpstring("Occurs when the user presses the mouse button while an object has the focus."), helpcontext(0x000334fe)]
        void MouseDown(
            short Button,
            short Shift,
            stdole.OLE_XPOS_PIXELS x,
            stdole.OLE_YPOS_PIXELS y);
        [id(0xfffffda2), helpstring("Occurs when the user moves the mouse."), helpcontext(0x000334ff)]
        void MouseMove(
            short Button,
            short Shift,
            stdole.OLE_XPOS_PIXELS x,
            stdole.OLE_YPOS_PIXELS y);
        [id(0xfffffda1), helpstring("Occurs when the user releases the mouse button while an object has the focus."), helpcontext(0x00033500)]
        void MouseUp(
            short Button,
            short Shift,
            stdole.OLE_XPOS_PIXELS x,
            stdole.OLE_YPOS_PIXELS y);
        [id(0xfffffda7), helpstring("Occurs when you press and release a mouse button and then press and release it again over an object."), helpcontext(0x00033501)]
        void DblClick();
        [id(0x0000060e), helpstring("OLEStartDrag event"), helpcontext(0x000336cf)]
        void OLEStartDrag(
            [in, out] DataObject** Data,
            [in, out] long* AllowedEffects);
        [id(0x0000060f), helpstring("OLEGiveFeedback event"), helpcontext(0x000336d0)]
        void OLEGiveFeedback(
            [in, out] long* Effect,
            [in, out] VARIANT_BOOL* DefaultCursors);
        [id(0x00000610), helpstring("OLESetData event"), helpcontext(0x000336d1)]
        void OLESetData(
            [in, out] DataObject** Data,
            [in, out] short* DataFormat);
        [id(0x00000611), helpstring("OLECompleteDrag event"), helpcontext(0x000336d2)]
        void OLECompleteDrag([in, out] long* Effect);
        [id(0x00000612), helpstring("OLEDragOver event"), helpcontext(0x000336d3)]
        void OLEDragOver(
            [in, out] DataObject** Data,
            [in, out] long* Effect,
            [in, out] short* Button,
            [in, out] short* Shift,
            [in, out] float* x,
            [in, out] float* y,
            [in, out] short* State);
        [id(0x00000613), helpstring("OLEDragDrop event"), helpcontext(0x000336d4)]
        void OLEDragDrop(
            [in, out] DataObject** Data,
            [in, out] long* Effect,
            [in, out] short* Button,
            [in, out] short* Shift,
            [in, out] float* x,
            [in, out] float* y);
        [id(0x00000003), helpstring("Occurs when the user selects an item from a button dropdown menu."), helpcontext(0x000337a1)]
        void ButtonMenuClick(ButtonMenu* ButtonMenu);
        [id(0x00000004), helpstring("Occurs when the user clicks the dropdown arrow on a button with Style = tbrDropdown."), helpcontext(0x000337d4)]
        void ButtonDropDown(Button* Button);
    };

    [
        uuid(66833FE6-8583-11D1-B16A-00C0F0283628),
        helpstring("Microsoft Toolbar Control"),
        helpcontext(0x000334c8),
        licensed,
        control
    ]
    coclass Toolbar {
        [default] interface IToolbar;
        [default, source] dispinterface IToolbarEvents;
    };

    [
        odl,
        uuid(66833FE7-8583-11D1-B16A-00C0F0283628),
        helpstring("ToolBar Buttons"),
        helpcontext(0x000334d2),
        dual,
        nonextensible,
        oleautomation
    ]
    interface IButtons : IDispatch {
        [id(0x00000001), propget, helpstring("Returns the number of objects in a collection."), helpcontext(0x000334d3)]
        HRESULT Count([out, retval] short* psCount);
        [id(0x00000001), propput, helpstring("Returns the number of objects in a collection."), helpcontext(0x000334d3)]
        HRESULT Count([in] short psCount);
        [id(00000000), propget, hidden]
        HRESULT ControlDefault(
            [in] VARIANT* Index,
            [out, retval] IButton** ppButton);
        [id(00000000), propputref, hidden]
        HRESULT ControlDefault(
            [in] VARIANT* Index,
            [in] IButton* ppButton);
        [id(0x00000002), propget, helpstring("Returns a specific member of a Collection object either by position or by key."), helpcontext(0x000334d4)]
        HRESULT Item(
            [in] VARIANT* Index,
            [out, retval] IButton** ppButton);
        [id(0x00000002), propputref, helpstring("Returns a specific member of a Collection object either by position or by key."), helpcontext(0x000334d4)]
        HRESULT Item(
            [in] VARIANT* Index,
            [in] IButton* ppButton);
        [id(0x00000003), helpstring("Removes a specific member from a collection."), helpcontext(0x000334d5)]
        HRESULT Remove([in] VARIANT* Index);
        [id(0x00000004), helpstring("Removes all objects in a collection."), helpcontext(0x000334d6)]
        HRESULT Clear();
        [id(0x00000005), helpstring("Adds a Button object to a Buttons collection and returns a reference to the created object."), helpcontext(0x000334d7)]
        HRESULT Add(
            [in, optional] VARIANT* Index,
            [in, optional] VARIANT* Key,
            [in, optional] VARIANT* Caption,
            [in, optional] VARIANT* Style,
            [in, optional] VARIANT* Image,
            [out, retval, optional] IButton** ppButton);
        [id(0xfffffffc), hidden]
        HRESULT _NewEnum([out, retval] IDispatch** ppDispatch);
    };

    [
        uuid(66833FE8-8583-11D1-B16A-00C0F0283628),
        helpstring("ToolBar Buttons"),
        helpcontext(0x000334d2),
        noncreatable
    ]
    coclass Buttons {
        [default] interface IButtons;
    };

    [
        odl,
        uuid(66833FE9-8583-11D1-B16A-00C0F0283628),
        helpstring("ToolBar Button"),
        helpcontext(0x000334d8),
        dual,
        nonextensible,
        oleautomation
    ]
    interface IButton : IDispatch {
        [id(00000000), propget, hidden]
        HRESULT _ObjectDefault([out, retval] BSTR* pbstr_ObjectDefault);
        [id(00000000), propput, hidden]
        HRESULT _ObjectDefault([in] BSTR pbstr_ObjectDefault);
        [id(0x00000002), propget, helpstring("Returns/sets the text displayed in an object's title bar or below an object's icon."), helpcontext(0x000334d9)]
        HRESULT Caption([out, retval] BSTR* pbstrCaption);
        [id(0x00000002), propput, helpstring("Returns/sets the text displayed in an object's title bar or below an object's icon."), helpcontext(0x000334d9)]
        HRESULT Caption([in] BSTR pbstrCaption);
        [id(0x00000001), propget, helpstring("Stores any extra data needed for your program."), helpcontext(0x000334da)]
        HRESULT Tag([out, retval] VARIANT* pvTag);
        [id(0x00000001), propput, helpstring("Stores any extra data needed for your program."), helpcontext(0x000334da)]
        HRESULT Tag([in] VARIANT pvTag);
        [id(0x00000003), propget, helpstring("Returns/sets a value that determines whether a form or control can respond to user-generated events."), helpcontext(0x000334db)]
        HRESULT Enabled([out, retval] VARIANT_BOOL* pbEnabled);
        [id(0x00000003), propput, helpstring("Returns/sets a value that determines whether a form or control can respond to user-generated events."), helpcontext(0x000334db)]
        HRESULT Enabled([in] VARIANT_BOOL pbEnabled);
        [id(0x00000004), propget, helpstring("Returns/sets the index of an object in a collection. Read-only at run time."), helpcontext(0x000334dc)]
        HRESULT Index([out, retval] short* psIndex);
        [id(0x00000004), propput, helpstring("Returns/sets the index of an object in a collection. Read-only at run time."), helpcontext(0x000334dc)]
        HRESULT Index([in] short psIndex);
        [id(0x00000005), propget, helpstring("Returns/sets the unique string of an object in a collection."), helpcontext(0x000334dd)]
        HRESULT Key([out, retval] BSTR* pbstrKey);
        [id(0x00000005), propput, helpstring("Returns/sets the unique string of an object in a collection."), helpcontext(0x000334dd)]
        HRESULT Key([in] BSTR pbstrKey);
        [id(0x00000006), propget, helpstring("Returns/sets the string displayed when a cursor hovers over an object."), helpcontext(0x000334de)]
        HRESULT ToolTipText([out, retval] BSTR* pbstrToolTipText);
        [id(0x00000006), propput, helpstring("Returns/sets the string displayed when a cursor hovers over an object."), helpcontext(0x000334de)]
        HRESULT ToolTipText([in] BSTR pbstrToolTipText);
        [id(0x00000007), propget, helpstring("Returns/sets a value that determines whether an object is visible or hidden."), helpcontext(0x000334df)]
        HRESULT Visible([out, retval] VARIANT_BOOL* pbVisible);
        [id(0x00000007), propput, helpstring("Returns/sets a value that determines whether an object is visible or hidden."), helpcontext(0x000334df)]
        HRESULT Visible([in] VARIANT_BOOL pbVisible);
        [id(0x00000008), propget, helpstring("Returns/sets the width of an object."), helpcontext(0x000334e0)]
        HRESULT Width([out, retval] float* pfWidth);
        [id(0x00000008), propput, helpstring("Returns/sets the width of an object."), helpcontext(0x000334e0)]
        HRESULT Width([in] float pfWidth);
        [id(0x00000009), propget, helpstring("Returns/sets the height of an object."), helpcontext(0x000334e1)]
        HRESULT Height([out, retval] float* pfHeight);
        [id(0x00000009), propput, helpstring("Returns/sets the height of an object."), helpcontext(0x000334e1)]
        HRESULT Height([in] float pfHeight);
        [id(0x0000000a), propget, helpstring("Returns/sets the distance between the internal top edge of an object and the top edge of its container."), helpcontext(0x000334e2)]
        HRESULT Top([out, retval] float* pfTop);
        [id(0x0000000a), propput, helpstring("Returns/sets the distance between the internal top edge of an object and the top edge of its container."), helpcontext(0x000334e2)]
        HRESULT Top([in] float pfTop);
        [id(0x0000000b), propget, helpstring("Returns/sets the distance between the internal left edge of an object and the left edge of its container."), helpcontext(0x000334e3)]
        HRESULT Left([out, retval] float* pfLeft);
        [id(0x0000000b), propput, helpstring("Returns/sets the distance between the internal left edge of an object and the left edge of its container."), helpcontext(0x000334e3)]
        HRESULT Left([in] float pfLeft);
        [id(0x0000000c), propget, helpstring("Returns/sets the value of an object."), helpcontext(0x000334e4)]
        HRESULT Value([out, retval] ValueConstants* psValue);
        [id(0x0000000c), propput, helpstring("Returns/sets the value of an object."), helpcontext(0x000334e4)]
        HRESULT Value([in] ValueConstants psValue);
        [id(0x0000000d), propget, helpstring("Returns/sets the button style"), helpcontext(0x000334e5)]
        HRESULT Style([out, retval] ButtonStyleConstants* psStyle);
        [id(0x0000000d), propput, helpstring("Returns/sets the button style"), helpcontext(0x000334e5)]
        HRESULT Style([in] ButtonStyleConstants psStyle);
        [id(0x0000000e), propget, helpstring("Returns/sets the description displayed when the user clicks a Button object during a customization operation."), helpcontext(0x000334e6)]
        HRESULT Description([out, retval] BSTR* pbstrDescription);
        [id(0x0000000e), propput, helpstring("Returns/sets the description displayed when the user clicks a Button object during a customization operation."), helpcontext(0x000334e6)]
        HRESULT Description([in] BSTR pbstrDescription);
        [id(0x0000000f), propget, helpstring("Returns/sets the index or key of a ListImage object to be used."), helpcontext(0x000334e7)]
        HRESULT Image([out, retval] VARIANT* pvImage);
        [id(0x0000000f), propput, helpstring("Returns/sets the index or key of a ListImage object to be used."), helpcontext(0x000334e7)]
        HRESULT Image([in] VARIANT pvImage);
        [id(0x00000010), propget, helpstring("Returns/sets the index or key of a ListImage object to be used."), helpcontext(0x000334e8)]
        HRESULT MixedState([out, retval] VARIANT_BOOL* pbMixedState);
        [id(0x00000010), propput, helpstring("Returns/sets the index or key of a ListImage object to be used."), helpcontext(0x000334e8)]
        HRESULT MixedState([in] VARIANT_BOOL pbMixedState);
        [id(0x00000011), propget, helpstring("Returns a reference to a Button object's collection of ButtonMenu objects."), helpcontext(0x00033793)]
        HRESULT ButtonMenus([out, retval] IButtonMenus** ppButtonMenus);
        [id(0x00000011), propputref, helpstring("Returns a reference to a Button object's collection of ButtonMenu objects."), helpcontext(0x00033793)]
        HRESULT ButtonMenus([in] IButtonMenus* ppButtonMenus);
        [id(0x00000001), propputref, helpstring("Stores any extra data needed for your program."), helpcontext(0x000334da)]
        HRESULT Tag([in] VARIANT pvTag);
    };

    [
        uuid(66833FEA-8583-11D1-B16A-00C0F0283628),
        helpstring("ToolBar Button"),
        helpcontext(0x000334d8),
        noncreatable
    ]
    coclass Button {
        [default] interface IButton;
    };

    [
        odl,
        uuid(66833FEB-8583-11D1-B16A-00C0F0283628),
        helpstring("ToolBar ButtonMenus"),
        helpcontext(0x00033794),
        dual,
        nonextensible,
        oleautomation
    ]
    interface IButtonMenus : IDispatch {
        [id(0x00000001), propget, helpstring("Returns the number of objects in a collection."), helpcontext(0x00033795)]
        HRESULT Count([out, retval] short* psCount);
        [id(0x00000001), propput, helpstring("Returns the number of objects in a collection."), helpcontext(0x00033795)]
        HRESULT Count([in] short psCount);
        [id(00000000), propget, hidden]
        HRESULT ControlDefault(
            [in] VARIANT* Index,
            [out, retval] IButtonMenu** ppButtonMenu);
        [id(00000000), propputref, hidden]
        HRESULT ControlDefault(
            [in] VARIANT* Index,
            [in] IButtonMenu* ppButtonMenu);
        [id(0x00000002), propget, helpstring("Returns a specific member of a Collection object either by position or by key."), helpcontext(0x00033796)]
        HRESULT Item(
            [in] VARIANT* Index,
            [out, retval] IButtonMenu** ppButtonMenu);
        [id(0x00000002), propputref, helpstring("Returns a specific member of a Collection object either by position or by key."), helpcontext(0x00033796)]
        HRESULT Item(
            [in] VARIANT* Index,
            [in] IButtonMenu* ppButtonMenu);
        [id(0x00000003), helpstring("Removes a specific member from a collection."), helpcontext(0x00033797)]
        HRESULT Remove([in] VARIANT* Index);
        [id(0x00000004), helpstring("Removes all objects in a collection."), helpcontext(0x00033798)]
        HRESULT Clear();
        [id(0x00000005), helpstring("Adds a ButtonMenu object to a ButtonMenus collection and returns a reference to the created object."), helpcontext(0x00033799)]
        HRESULT Add(
            [in, optional] VARIANT* Index,
            [in, optional] VARIANT* Key,
            [in, optional] VARIANT* Text,
            [out, retval, optional] IButtonMenu** ppButtonMenu);
        [id(0xfffffffc), hidden]
        HRESULT _NewEnum([out, retval] IDispatch** ppDispatch);
    };

    [
        uuid(66833FEC-8583-11D1-B16A-00C0F0283628),
        helpstring("ToolBar ButtonMenus"),
        helpcontext(0x00033794),
        noncreatable
    ]
    coclass ButtonMenus {
        [default] interface IButtonMenus;
    };

    [
        odl,
        uuid(66833FED-8583-11D1-B16A-00C0F0283628),
        helpstring("ToolBar ButtonMenu"),
        helpcontext(0x0003379a),
        dual,
        nonextensible,
        oleautomation
    ]
    interface IButtonMenu : IDispatch {
        [id(00000000), propget, hidden]
        HRESULT _ObjectDefault([out, retval] BSTR* pbstrObjectDefault);
        [id(00000000), propput, hidden]
        HRESULT _ObjectDefault([in] BSTR pbstrObjectDefault);
        [id(0x00000001), propget, helpstring("Returns/sets a value that determines whether a form or control can respond to user-generated events."), helpcontext(0x0003379b)]
        HRESULT Enabled([out, retval] VARIANT_BOOL* pbEnabled);
        [id(0x00000001), propput, helpstring("Returns/sets a value that determines whether a form or control can respond to user-generated events."), helpcontext(0x0003379b)]
        HRESULT Enabled([in] VARIANT_BOOL pbEnabled);
        [id(0x00000002), propget, helpstring("Returns/sets the index of an object in a collection. Read-only at run time."), helpcontext(0x0003379c)]
        HRESULT Index([out, retval] short* psIndex);
        [id(0x00000002), propput, helpstring("Returns/sets the index of an object in a collection. Read-only at run time."), helpcontext(0x0003379c)]
        HRESULT Index([in] short psIndex);
        [id(0x00000003), propget, helpstring("Returns/sets the unique string of an object in a collection."), helpcontext(0x0003379d)]
        HRESULT Key([out, retval] BSTR* pbstrKey);
        [id(0x00000003), propput, helpstring("Returns/sets the unique string of an object in a collection."), helpcontext(0x0003379d)]
        HRESULT Key([in] BSTR pbstrKey);
        [id(0x00000004), propget, helpstring("Returns/sets a reference to the parent Button of a ButtonMenu object."), helpcontext(0x0003379e)]
        HRESULT Parent([out, retval] IButton** ppParent);
        [id(0x00000004), propputref, helpstring("Returns/sets a reference to the parent Button of a ButtonMenu object."), helpcontext(0x0003379e)]
        HRESULT Parent([in] IButton* ppParent);
        [id(0x00000005), propget, helpstring("Stores any extra data needed for your program."), helpcontext(0x0003379f)]
        HRESULT Tag([out, retval] VARIANT* pvTag);
        [id(0x00000005), propput, helpstring("Stores any extra data needed for your program."), helpcontext(0x0003379f)]
        HRESULT Tag([in] VARIANT pvTag);
        [id(0x00000006), propget, helpstring("Returns/sets the text displayed in the ButtonMenu item."), helpcontext(0x000337a0)]
        HRESULT Text([out, retval] BSTR* pbstrText);
        [id(0x00000006), propput, helpstring("Returns/sets the text displayed in the ButtonMenu item."), helpcontext(0x000337a0)]
        HRESULT Text([in] BSTR pbstrText);
        [id(0x00000007), propget, helpstring("Returns/sets a value that determines whether an object is visible or hidden."), helpcontext(0x000337d3)]
        HRESULT Visible([out, retval] VARIANT_BOOL* pbVisible);
        [id(0x00000007), propput, helpstring("Returns/sets a value that determines whether an object is visible or hidden."), helpcontext(0x000337d3)]
        HRESULT Visible([in] VARIANT_BOOL pbVisible);
    };

    [
        uuid(66833FEE-8583-11D1-B16A-00C0F0283628),
        helpstring("ToolBar ButtonMenu"),
        helpcontext(0x0003379a),
        noncreatable
    ]
    coclass ButtonMenu {
        [default] interface IButtonMenu;
    };

    typedef [uuid(8E3867A0-8586-11D1-B16A-00C0F0283628), helpstring("StatusBar Style constants"), helpcontext(0x000335e9)]
    enum {
        sbrNormal = 0,
        sbrSimple = 1
    } SbarStyleConstants;

    [
        odl,
        uuid(8E3867A1-8586-11D1-B16A-00C0F0283628),
        helpstring("Microsoft StatusBar Control"),
        helpcontext(0x000335e8),
        hidden,
        dual,
        nonextensible,
        oleautomation
    ]
    interface IStatusBar : IDispatch {
        [id(0x00000001), propget, helpstring("Returns/sets the text displayed when a StatusBar control's Style property is set to Simple."), helpcontext(0x000335ec)]
        HRESULT SimpleText([out, retval] BSTR* pbstrSimpleText);
        [id(0x00000001), propput, helpstring("Returns/sets the text displayed when a StatusBar control's Style property is set to Simple."), helpcontext(0x000335ec)]
        HRESULT SimpleText([in] BSTR pbstrSimpleText);
        [id(0x00000002), propget, helpstring("Returns/sets the the single (simple) or multiple panel style"), helpcontext(0x000335ed)]
        HRESULT Style([out, retval] SbarStyleConstants* psStyle);
        [id(0x00000002), propput, helpstring("Returns/sets the the single (simple) or multiple panel style"), helpcontext(0x000335ed)]
        HRESULT Style([in] SbarStyleConstants psStyle);
        [id(0x00000003), propget, helpstring("Returns a reference to a collection of Panel objects."), helpcontext(0x000335ee)]
        HRESULT Panels([out, retval] IPanels** ppPanels);
        [id(0x00000003), propputref, helpstring("Returns a reference to a collection of Panel objects."), helpcontext(0x000335ee)]
        HRESULT Panels([in] IPanels* ppPanels);
        [id(0x00000004), propget, helpstring("Returns/sets the type of mouse pointer displayed when over part of an object."), helpcontext(0x000335ef)]
        HRESULT MousePointer([out, retval] MousePointerConstants* psMousePointer);
        [id(0x00000004), propput, helpstring("Returns/sets the type of mouse pointer displayed when over part of an object."), helpcontext(0x000335ef)]
        HRESULT MousePointer([in] MousePointerConstants psMousePointer);
        [id(0x00000005), propget, helpstring("Sets a custom mouse icon."), helpcontext(0x000335f0)]
        HRESULT MouseIcon([out, retval] stdole.IPictureDisp** ppMouseIcon);
        [id(0x00000005), propput, helpstring("Sets a custom mouse icon."), helpcontext(0x000335f0)]
        HRESULT MouseIcon([in] stdole.IPictureDisp* ppMouseIcon);
        [id(0x00000005), propputref, helpstring("Sets a custom mouse icon."), helpcontext(0x000335f0)]
        HRESULT MouseIcon([in] stdole.IPictureDisp* ppMouseIcon);
        [id(0x00000007), propget, helpstring("Enables/disables ToolTips for panels"), helpcontext(0x000336a9)]
        HRESULT ShowTips([out, retval] VARIANT_BOOL* bShowTips);
        [id(0x00000007), propput, helpstring("Enables/disables ToolTips for panels"), helpcontext(0x000336a9)]
        HRESULT ShowTips([in] VARIANT_BOOL bShowTips);
        [id(0x00000006), propget, hidden, helpstring("Returns/sets a value that determines whether a form or control can respond to user-generated events."), helpcontext(0x000335f1)]
        HRESULT PanelProperties([out, retval] BSTR* pbstrPanelProperties);
        [id(0x00000006), propput, hidden, helpstring("Returns/sets a value that determines whether a form or control can respond to user-generated events."), helpcontext(0x000335f1)]
        HRESULT PanelProperties([in] BSTR pbstrPanelProperties);
        [id(0x0000060f), propget, helpstring("Returns/Sets whether this control can act as an OLE drop target."), helpcontext(0x00033692)]
        HRESULT OLEDropMode([out, retval] OLEDropConstants* psOLEDropMode);
        [id(0x0000060f), propput, helpstring("Returns/Sets whether this control can act as an OLE drop target."), helpcontext(0x00033692)]
        HRESULT OLEDropMode([in] OLEDropConstants psOLEDropMode);
        [id(0xfffffdfe), propget, helpstring("Returns/sets a value that determines whether a form or control can respond to user-generated events"), helpcontext(0x000335f2)]
        HRESULT Enabled([out, retval] VARIANT_BOOL* pbEnabled);
        [id(0xfffffdfe), propput, helpstring("Returns/sets a value that determines whether a form or control can respond to user-generated events"), helpcontext(0x000335f2)]
        HRESULT Enabled([in] VARIANT_BOOL pbEnabled);
        [id(0xfffffe00), propget, helpstring("Returns a Font object."), helpcontext(0x000335f3)]
        HRESULT Font([out, retval] stdole.IFontDisp** ppFont);
        [id(0xfffffe00), propputref, helpstring("Returns a Font object."), helpcontext(0x000335f3)]
        HRESULT Font([in] stdole.IFontDisp* ppFont);
        [id(0xfffffdfd), propget, helpstring("Returns a handle to a form or control."), helpcontext(0x000335f4)]
        HRESULT hWnd([out, retval] stdole.OLE_HANDLE* phWnd);
        [id(0xfffffdfd), propput, helpstring("Returns a handle to a form or control."), helpcontext(0x000335f4)]
        HRESULT hWnd([in] stdole.OLE_HANDLE phWnd);
        [id(0xfffffdda), helpstring("Forces a complete repaint of a form or control."), helpcontext(0x000335f5)]
        HRESULT Refresh();
        [id(0x00000610), helpstring("Starts an OLE drag/drop event with the given control as the source."), helpcontext(0x00033690)]
        HRESULT OLEDrag();
        [id(0xfffffdd8), hidden]
        HRESULT AboutBox();
    };

    [
        uuid(8E3867A2-8586-11D1-B16A-00C0F0283628),
        helpstring("Event interface for Status Bar Control"),
        helpcontext(0x000336b2),
        nonextensible
    ]
    dispinterface IStatusBarEvents {
    properties:
    methods:
        [id(0x00000001), helpstring("Similar to the standard Click event, but the PanelClick event occurs when a user presses and then releases a mouse button over any of the StatusBar control's Panel objects."), helpcontext(0x000335f6)]
        void PanelClick(Panel* Panel);
        [id(0x00000002), helpstring("Similar to the standard DblClick Event, the PanelDblClick occurs when a user presses and then releases a mouse button twice over a StatusBar control's Panel object."), helpcontext(0x000335f7)]
        void PanelDblClick(Panel* Panel);
        [id(0xfffffda3), helpstring("Occurs when the user presses the mouse button while an object has the focus."), helpcontext(0x000335f8)]
        void MouseDown(
            short Button,
            short Shift,
            stdole.OLE_XPOS_PIXELS x,
            stdole.OLE_YPOS_PIXELS y);
        [id(0xfffffda2), helpstring("Occurs when the user moves the mouse."), helpcontext(0x000335f9)]
        void MouseMove(
            short Button,
            short Shift,
            stdole.OLE_XPOS_PIXELS x,
            stdole.OLE_YPOS_PIXELS y);
        [id(0xfffffda1), helpstring("Occurs when the user releases the mouse button while an object has the focus."), helpcontext(0x000335fa)]
        void MouseUp(
            short Button,
            short Shift,
            stdole.OLE_XPOS_PIXELS x,
            stdole.OLE_YPOS_PIXELS y);
        [id(0xfffffda8), helpstring("Occurs when the user presses and then releases a mouse button over an object."), helpcontext(0x000335fb)]
        void Click();
        [id(0xfffffda7), helpstring("Occurs when you press and release a mouse button and then press and release it again over an object."), helpcontext(0x000335fc)]
        void DblClick();
        [id(0x0000060e), helpstring("OLEStartDrag event"), helpcontext(0x000336cf)]
        void OLEStartDrag(
            [in, out] DataObject** Data,
            [in, out] long* AllowedEffects);
        [id(0x0000060f), helpstring("OLEGiveFeedback event"), helpcontext(0x000336d0)]
        void OLEGiveFeedback(
            [in, out] long* Effect,
            [in, out] VARIANT_BOOL* DefaultCursors);
        [id(0x00000610), helpstring("OLESetData event"), helpcontext(0x000336d1)]
        void OLESetData(
            [in, out] DataObject** Data,
            [in, out] short* DataFormat);
        [id(0x00000611), helpstring("OLECompleteDrag event"), helpcontext(0x000336d2)]
        void OLECompleteDrag([in, out] long* Effect);
        [id(0x00000612), helpstring("OLEDragOver event"), helpcontext(0x000336d3)]
        void OLEDragOver(
            [in, out] DataObject** Data,
            [in, out] long* Effect,
            [in, out] short* Button,
            [in, out] short* Shift,
            [in, out] float* x,
            [in, out] float* y,
            [in, out] short* State);
        [id(0x00000613), helpstring("OLEDragDrop event"), helpcontext(0x000336d4)]
        void OLEDragDrop(
            [in, out] DataObject** Data,
            [in, out] long* Effect,
            [in, out] short* Button,
            [in, out] short* Shift,
            [in, out] float* x,
            [in, out] float* y);
    };

    [
        uuid(8E3867A3-8586-11D1-B16A-00C0F0283628),
        helpstring("Microsoft StatusBar Control"),
        helpcontext(0x000335e8),
        licensed,
        control
    ]
    coclass StatusBar {
        [default] interface IStatusBar;
        [default, source] dispinterface IStatusBarEvents;
    };

    [
        odl,
        uuid(8E3867A4-8586-11D1-B16A-00C0F0283628),
        helpstring("StatusBar Panels collection"),
        helpcontext(0x000335fd),
        hidden,
        dual,
        nonextensible,
        oleautomation
    ]
    interface IPanels : IDispatch {
        [id(0x00000001), propget, helpstring("Returns the number of objects in a collection."), helpcontext(0x000335fe)]
        HRESULT Count([out, retval] short* sCount);
        [id(0x00000001), propput, helpstring("Returns the number of objects in a collection."), helpcontext(0x000335fe)]
        HRESULT Count([in] short sCount);
        [id(00000000), propget, hidden]
        HRESULT ControlDefault(
            [in] VARIANT* Index,
            [out, retval] IPanel** ppPanel);
        [id(00000000), propputref, hidden]
        HRESULT ControlDefault(
            [in] VARIANT* Index,
            [in] IPanel* ppPanel);
        [id(0x00000002), helpstring("Adds a Panel object to a Panels collection and returns a reference to the created Panel."), helpcontext(0x000335ff)]
        HRESULT Add(
            [in, optional] VARIANT* Index,
            [in, optional] VARIANT* Key,
            [in, optional] VARIANT* Text,
            [in, optional] VARIANT* Style,
            [in, optional] VARIANT* Picture,
            [out, retval, optional] IPanel** ppPanel);
        [id(0x00000003), helpstring("Removes all objects in a collection."), helpcontext(0x00033600)]
        HRESULT Clear();
        [id(0x00000004), propget, helpstring("Returns a specific member of a Collection object either by position or by key."), helpcontext(0x00033601)]
        HRESULT Item(
            [in] VARIANT* Index,
            [out, retval] IPanel** ppPanel);
        [id(0x00000004), propputref, helpstring("Returns a specific member of a Collection object either by position or by key."), helpcontext(0x00033601)]
        HRESULT Item(
            [in] VARIANT* Index,
            [in] IPanel* ppPanel);
        [id(0x00000005), helpstring("Removes a specific member from a collection."), helpcontext(0x00033602)]
        HRESULT Remove([in] VARIANT* Index);
        [id(0xfffffffc), hidden]
        HRESULT _NewEnum([out, retval] IDispatch** ppNewEnum);
    };

    [
        uuid(8E3867A5-8586-11D1-B16A-00C0F0283628),
        helpstring("StatusBar Panels collection"),
        helpcontext(0x000335fd),
        noncreatable
    ]
    coclass Panels {
        [default] interface IPanels;
    };

    typedef [uuid(8E3867A6-8586-11D1-B16A-00C0F0283628), helpstring("Panel Alignment constants"), helpcontext(0x00033603)]
    enum {
        sbrLeft = 0,
        sbrCenter = 1,
        sbrRight = 2
    } PanelAlignmentConstants;

    typedef [uuid(8E3867A7-8586-11D1-B16A-00C0F0283628), helpstring("Panel AutoSize constants"), helpcontext(0x00033607)]
    enum {
        sbrNoAutoSize = 0,
        sbrSpring = 1,
        sbrContents = 2
    } PanelAutoSizeConstants;

    typedef [uuid(8E3867A8-8586-11D1-B16A-00C0F0283628), helpstring("Panel Bevel constants"), helpcontext(0x0003360b)]
    enum {
        sbrNoBevel = 0,
        sbrInset = 1,
        sbrRaised = 2
    } PanelBevelConstants;

    typedef [uuid(8E3867A9-8586-11D1-B16A-00C0F0283628), helpstring("Panel Style constants"), helpcontext(0x0003360f)]
    enum {
        sbrText = 0,
        sbrCaps = 1,
        sbrNum = 2,
        sbrIns = 3,
        sbrScrl = 4,
        sbrTime = 5,
        sbrDate = 6,
        sbrKana = 7
    } PanelStyleConstants;

    [
        odl,
        uuid(8E3867AA-8586-11D1-B16A-00C0F0283628),
        helpstring("StatusBar Panel"),
        helpcontext(0x00033617),
        hidden,
        dual,
        nonextensible,
        oleautomation
    ]
    interface IPanel : IDispatch {
        [id(00000000), propget, hidden]
        HRESULT _ObjectDefault([out, retval] BSTR* pbstrText);
        [id(00000000), propput, hidden]
        HRESULT _ObjectDefault([in] BSTR pbstrText);
        [id(0x00000001), propget, helpstring("Returns/sets the alignment of a StatusBar control, bottom, top, left, right, or floating"), helpcontext(0x00033618)]
        HRESULT Alignment([out, retval] PanelAlignmentConstants* psAlignment);
        [id(0x00000001), propput, helpstring("Returns/sets the alignment of a StatusBar control, bottom, top, left, right, or floating"), helpcontext(0x00033618)]
        HRESULT Alignment([in] PanelAlignmentConstants psAlignment);
        [id(0x00000002), propget, helpstring("Returns/sets a value that allows the width of a Panel object to be automatically sized when the panel's contents change or the parent form resizes"), helpcontext(0x00033619)]
        HRESULT AutoSize([out, retval] PanelAutoSizeConstants* psAutoSize);
        [id(0x00000002), propput, helpstring("Returns/sets a value that allows the width of a Panel object to be automatically sized when the panel's contents change or the parent form resizes"), helpcontext(0x00033619)]
        HRESULT AutoSize([in] PanelAutoSizeConstants psAutoSize);
        [id(0x00000003), propget, helpstring("Returns/sets the bevel appearance of a Panel object, inset, raised, or none"), helpcontext(0x0003361a)]
        HRESULT Bevel([out, retval] PanelBevelConstants* psBevel);
        [id(0x00000003), propput, helpstring("Returns/sets the bevel appearance of a Panel object, inset, raised, or none"), helpcontext(0x0003361a)]
        HRESULT Bevel([in] PanelBevelConstants psBevel);
        [id(0x00000004), propget, helpstring("Returns/sets a value that determines whether a form or control can respond to user-generated events"), helpcontext(0x0003361b)]
        HRESULT Enabled([out, retval] VARIANT_BOOL* pbEnabled);
        [id(0x00000004), propput, helpstring("Returns/sets a value that determines whether a form or control can respond to user-generated events"), helpcontext(0x0003361b)]
        HRESULT Enabled([in] VARIANT_BOOL pbEnabled);
        [id(0x00000005), propget, helpstring("Returns/sets the index of an object in a collection. Read-only at run time"), helpcontext(0x0003361c)]
        HRESULT Index([out, retval] short* sIndex);
        [id(0x00000005), propput, helpstring("Returns/sets the index of an object in a collection. Read-only at run time"), helpcontext(0x0003361c)]
        HRESULT Index([in] short sIndex);
        [id(0x00000006), propget, helpstring("Returns/sets the unique string of an object in a collection"), helpcontext(0x0003361d)]
        HRESULT Key([out, retval] BSTR* pbstrKey);
        [id(0x00000006), propput, helpstring("Returns/sets the unique string of an object in a collection"), helpcontext(0x0003361d)]
        HRESULT Key([in] BSTR pbstrKey);
        [id(0x00000007), propget, helpstring("Returns/sets the distance between the internal left edge of an object and the left edge of its container"), helpcontext(0x0003361e)]
        HRESULT Left([out, retval] float* pfLeft);
        [id(0x00000007), propput, helpstring("Returns/sets the distance between the internal left edge of an object and the left edge of its container"), helpcontext(0x0003361e)]
        HRESULT Left([in] float pfLeft);
        [id(0x00000008), propget, helpstring("Returns/sets the minimum width of a Panel object"), helpcontext(0x0003361f)]
        HRESULT MinWidth([out, retval] float* pfMinWidth);
        [id(0x00000008), propput, helpstring("Returns/sets the minimum width of a Panel object"), helpcontext(0x0003361f)]
        HRESULT MinWidth([in] float pfMinWidth);
        [id(0x00000009), propget, helpstring("Returns/sets the Picture property for a Panel object"), helpcontext(0x00033620)]
        HRESULT Picture([out, retval] stdole.IPictureDisp** ppPicture);
        [id(0x00000009), propputref, helpstring("Returns/sets the Picture property for a Panel object"), helpcontext(0x00033620)]
        HRESULT Picture([in] stdole.IPictureDisp* ppPicture);
        [id(0x0000000a), propget, helpstring("Returns/sets the style of a StatusBar Panel object"), helpcontext(0x00033621)]
        HRESULT Style([out, retval] PanelStyleConstants* psStyle);
        [id(0x0000000a), propput, helpstring("Returns/sets the style of a StatusBar Panel object"), helpcontext(0x00033621)]
        HRESULT Style([in] PanelStyleConstants psStyle);
        [id(0x0000000e), propget, helpstring("Stores any extra data needed for your program."), helpcontext(0x00033626)]
        HRESULT Tag([out, retval] VARIANT* pvTag);
        [id(0x0000000e), propput, helpstring("Stores any extra data needed for your program."), helpcontext(0x00033626)]
        HRESULT Tag([in] VARIANT pvTag);
        [id(0x0000000b), propget, helpstring("Returns/sets the text to be displayed in a control"), helpcontext(0x00033623)]
        HRESULT Text([out, retval] BSTR* pbstrText);
        [id(0x0000000b), propput, helpstring("Returns/sets the text to be displayed in a control"), helpcontext(0x00033623)]
        HRESULT Text([in] BSTR pbstrText);
        [id(0x0000000f), propget, helpstring("Returns/sets the string displayed when a cursor hovers over an object."), helpcontext(0x00033676)]
        HRESULT ToolTipText([out, retval] BSTR* pbstrToolTipText);
        [id(0x0000000f), propput, helpstring("Returns/sets the string displayed when a cursor hovers over an object."), helpcontext(0x00033676)]
        HRESULT ToolTipText([in] BSTR pbstrToolTipText);
        [id(0x0000000c), propget, helpstring("Returns/sets a value that determines whether an object is visible or hidden"), helpcontext(0x00033624)]
        HRESULT Visible([out, retval] VARIANT_BOOL* pbVisible);
        [id(0x0000000c), propput, helpstring("Returns/sets a value that determines whether an object is visible or hidden"), helpcontext(0x00033624)]
        HRESULT Visible([in] VARIANT_BOOL pbVisible);
        [id(0x0000000d), propget, helpstring("Returns/sets the width of an object"), helpcontext(0x00033625)]
        HRESULT Width([out, retval] float* pfWidth);
        [id(0x0000000d), propput, helpstring("Returns/sets the width of an object"), helpcontext(0x00033625)]
        HRESULT Width([in] float pfWidth);
        [id(0x00000009), propput, helpstring("Returns/sets the Picture property for a Panel object"), helpcontext(0x00033620)]
        HRESULT Picture([in] stdole.IPictureDisp* ppPicture);
        [id(0x0000000e), propputref, helpstring("Stores any extra data needed for your program."), helpcontext(0x00033626)]
        HRESULT Tag([in] VARIANT pvTag);
    };

    [
        uuid(8E3867AB-8586-11D1-B16A-00C0F0283628),
        helpstring("StatusBar Panel"),
        helpcontext(0x00033617),
        noncreatable
    ]
    coclass Panel {
        [default] interface IPanel;
    };

    [
        odl,
        uuid(35053A20-8589-11D1-B16A-00C0F0283628),
        helpstring("Microsoft ProgressBar Control"),
        helpcontext(0x00033485),
        hidden,
        dual,
        nonextensible,
        oleautomation
    ]
    interface IProgressBar : IDispatch {
        [id(00000000), propget, hidden]
        HRESULT ControlDefault([out, retval] float* pfValue);
        [id(00000000), propput, hidden]
        HRESULT ControlDefault([in] float pfValue);
        [id(0x00000001), propget, helpstring("Returns/sets a control's maximum value."), helpcontext(0x00033486)]
        HRESULT Max([out, retval] float* pfMax);
        [id(0x00000001), propput, helpstring("Returns/sets a control's maximum value."), helpcontext(0x00033486)]
        HRESULT Max([in] float pfMax);
        [id(0x00000002), propget, helpstring("Returns/sets a control's minimum value."), helpcontext(0x00033487)]
        HRESULT Min([out, retval] float* pfMin);
        [id(0x00000002), propput, helpstring("Returns/sets a control's minimum value."), helpcontext(0x00033487)]
        HRESULT Min([in] float pfMin);
        [id(0x00000003), propget, helpstring("Returns/sets the type of mouse pointer displayed when over part of an object."), helpcontext(0x00033488)]
        HRESULT MousePointer([out, retval] MousePointerConstants* pMousePointers);
        [id(0x00000003), propput, helpstring("Returns/sets the type of mouse pointer displayed when over part of an object."), helpcontext(0x00033488)]
        HRESULT MousePointer([in] MousePointerConstants pMousePointers);
        [id(0x00000004), propget, helpstring("Sets a custom mouse icon."), helpcontext(0x00033489)]
        HRESULT MouseIcon([out, retval] stdole.IPictureDisp** ppPictureDisp);
        [id(0x00000004), propputref, helpstring("Sets a custom mouse icon."), helpcontext(0x00033489)]
        HRESULT MouseIcon([in] stdole.IPictureDisp* ppPictureDisp);
        [id(0x00000004), propput, helpstring("Sets a custom mouse icon."), helpcontext(0x00033489)]
        HRESULT MouseIcon([in] stdole.IPictureDisp* ppPictureDisp);
        [id(0x00000005), propget, helpstring("Returns or sets a control's current Value property."), helpcontext(0x0003348a)]
        HRESULT Value([out, retval] float* pfValue);
        [id(0x00000005), propput, helpstring("Returns or sets a control's current Value property."), helpcontext(0x0003348a)]
        HRESULT Value([in] float pfValue);
        [id(0x0000060f), propget, helpstring("Returns/Sets whether this control can act as an OLE drop target."), helpcontext(0x00033692)]
        HRESULT OLEDropMode([out, retval] OLEDropConstants* psOLEDropMode);
        [id(0x0000060f), propput, helpstring("Returns/Sets whether this control can act as an OLE drop target."), helpcontext(0x00033692)]
        HRESULT OLEDropMode([in] OLEDropConstants psOLEDropMode);
        [id(0xfffffdf8), propget, helpstring("Returns/sets whether or not controls, Forms or an MDIForm are painted at run time with 3-D effects."), helpcontext(0x0003348b)]
        HRESULT Appearance([out, retval] AppearanceConstants* penumAppearances);
        [id(0xfffffdf8), propput, helpstring("Returns/sets whether or not controls, Forms or an MDIForm are painted at run time with 3-D effects."), helpcontext(0x0003348b)]
        HRESULT Appearance([in] AppearanceConstants penumAppearances);
        [id(0xfffffe08), propget, helpstring("Returns/sets the border style for an object."), helpcontext(0x0003348c)]
        HRESULT BorderStyle([out, retval] BorderStyleConstants* penumBorderStyles);
        [id(0xfffffe08), propput, helpstring("Returns/sets the border style for an object."), helpcontext(0x0003348c)]
        HRESULT BorderStyle([in] BorderStyleConstants penumBorderStyles);
        [id(0xfffffdfe), propget, helpstring("Returns/sets a value that determines whether a form or control can respond to user-generated events."), helpcontext(0x0003348d)]
        HRESULT Enabled([out, retval] VARIANT_BOOL* bEnabled);
        [id(0xfffffdfe), propput, helpstring("Returns/sets a value that determines whether a form or control can respond to user-generated events."), helpcontext(0x0003348d)]
        HRESULT Enabled([in] VARIANT_BOOL bEnabled);
        [id(0xfffffdfd), propget, helpstring("Returns a handle to a form or control."), helpcontext(0x0003348e)]
        HRESULT hWnd([out, retval] stdole.OLE_HANDLE* phWnd);
        [id(0x00000610), helpstring("Starts an OLE drag/drop event with the given control as the source."), helpcontext(0x00033690)]
        HRESULT OLEDrag();
        [id(0xfffffdd8), hidden]
        HRESULT AboutBox();
        [id(0x00000006), propget, helpstring("Returns/sets a value that determines whether the Progress Bar is displayed vertically or horizontally."), helpcontext(0x0003376d)]
        HRESULT Orientation([out, retval] OrientationConstants* penumOrientation);
        [id(0x00000006), propput, helpstring("Returns/sets a value that determines whether the Progress Bar is displayed vertically or horizontally."), helpcontext(0x0003376d)]
        HRESULT Orientation([in] OrientationConstants penumOrientation);
        [id(0x00000007), propget, helpstring("Returns/sets a value that determines whether the control displays progress with a standard segmented bar or a smooth bar."), helpcontext(0x0003376e)]
        HRESULT Scrolling([out, retval] ScrollingConstants* penumScrolling);
        [id(0x00000007), propput, helpstring("Returns/sets a value that determines whether the control displays progress with a standard segmented bar or a smooth bar."), helpcontext(0x0003376e)]
        HRESULT Scrolling([in] ScrollingConstants penumScrolling);
        [id(0xfffffdda)]
        HRESULT Refresh();
    };

    [
        uuid(35053A21-8589-11D1-B16A-00C0F0283628),
        helpstring("Event interface for ProgressBar Control"),
        helpcontext(0x000336b0),
        nonextensible
    ]
    dispinterface IProgressBarEvents {
    properties:
    methods:
        [id(0xfffffda3), helpstring("MouseDown event"), helpcontext(0x0003348f)]
        void MouseDown(
            short Button,
            short Shift,
            stdole.OLE_XPOS_PIXELS x,
            stdole.OLE_YPOS_PIXELS y);
        [id(0xfffffda2), helpstring("MouseMove event"), helpcontext(0x00033490)]
        void MouseMove(
            short Button,
            short Shift,
            stdole.OLE_XPOS_PIXELS x,
            stdole.OLE_YPOS_PIXELS y);
        [id(0xfffffda1), helpstring("MouseUp event"), helpcontext(0x00033491)]
        void MouseUp(
            short Button,
            short Shift,
            stdole.OLE_XPOS_PIXELS x,
            stdole.OLE_YPOS_PIXELS y);
        [id(0xfffffda8), helpstring("Click event"), helpcontext(0x00033492)]
        void Click();
        [id(0x0000060e), helpstring("OLEStartDrag event"), helpcontext(0x000336cf)]
        void OLEStartDrag(
            [in, out] DataObject** Data,
            [in, out] long* AllowedEffects);
        [id(0x0000060f), helpstring("OLEGiveFeedback event"), helpcontext(0x000336d0)]
        void OLEGiveFeedback(
            [in, out] long* Effect,
            [in, out] VARIANT_BOOL* DefaultCursors);
        [id(0x00000610), helpstring("OLESetData event"), helpcontext(0x000336d1)]
        void OLESetData(
            [in, out] DataObject** Data,
            [in, out] short* DataFormat);
        [id(0x00000611), helpstring("OLECompleteDrag event"), helpcontext(0x000336d2)]
        void OLECompleteDrag([in, out] long* Effect);
        [id(0x00000612), helpstring("OLEDragOver event"), helpcontext(0x000336d3)]
        void OLEDragOver(
            [in, out] DataObject** Data,
            [in, out] long* Effect,
            [in, out] short* Button,
            [in, out] short* Shift,
            [in, out] float* x,
            [in, out] float* y,
            [in, out] short* State);
        [id(0x00000613), helpstring("OLEDragDrop event"), helpcontext(0x000336d4)]
        void OLEDragDrop(
            [in, out] DataObject** Data,
            [in, out] long* Effect,
            [in, out] short* Button,
            [in, out] short* Shift,
            [in, out] float* x,
            [in, out] float* y);
    };

    [
        uuid(35053A22-8589-11D1-B16A-00C0F0283628),
        helpstring("Microsoft ProgressBar Control"),
        helpcontext(0x00033485),
        licensed,
        control
    ]
    coclass ProgressBar {
        [default] interface IProgressBar;
        [default, source] dispinterface IProgressBarEvents;
    };

    typedef [uuid(C74190B0-8589-11D1-B16A-00C0F0283628), helpstring("LabelEdit constants"), helpcontext(0x00033529)]
    enum {
        tvwAutomatic = 0,
        tvwManual = 1
    } LabelEditConstants;

    typedef [uuid(C74190B1-8589-11D1-B16A-00C0F0283628), helpstring("TreeLine style constants"), helpcontext(0x0003352c)]
    enum {
        tvwTreeLines = 0,
        tvwRootLines = 1
    } TreeLineStyleConstants;

    typedef [uuid(C74190B2-8589-11D1-B16A-00C0F0283628), helpstring("TreeStyle constants"), helpcontext(0x0003352f)]
    enum {
        tvwTextOnly = 0,
        tvwPictureText = 1,
        tvwPlusMinusText = 2,
        tvwPlusPictureText = 3,
        tvwTreelinesText = 4,
        tvwTreelinesPictureText = 5,
        tvwTreelinesPlusMinusText = 6,
        tvwTreelinesPlusMinusPictureText = 7
    } TreeStyleConstants;

    typedef [uuid(C74190B3-8589-11D1-B16A-00C0F0283628), helpstring("TreeView Relationship constants"), helpcontext(0x00033538)]
    enum {
        tvwFirst = 0,
        tvwLast = 1,
        tvwNext = 2,
        tvwPrevious = 3,
        tvwChild = 4
    } TreeRelationshipConstants;

    [
        odl,
        uuid(C74190B4-8589-11D1-B16A-00C0F0283628),
        helpstring("Displays a hierarchical list of Node objects, each of which consists of a label and an optional bitmap."),
        helpcontext(0x00033528),
        hidden,
        dual,
        nonextensible,
        oleautomation
    ]
    interface ITreeView : IDispatch {
        [id(0x00000001), propget, helpstring("Returns a reference to a Node or ListItem object and highlights the object with the system highlight color."), helpcontext(0x0003353e)]
        HRESULT DropHighlight([out, retval] INode** ppNode);
        [id(0x00000001), propputref, helpstring("Returns a reference to a Node or ListItem object and highlights the object with the system highlight color."), helpcontext(0x0003353e)]
        HRESULT DropHighlight([in] INode* ppNode);
        [id(0x00000001), propput, helpstring("Returns a reference to a Node or ListItem object and highlights the object with the system highlight color."), helpcontext(0x0003353e)]
        HRESULT DropHighlight([in] VARIANT* ppNode);
        [id(0x00000002), propget, helpstring("Determines whether the selected item will display as selected when the TreeView loses focus"), helpcontext(0x0003353f)]
        HRESULT HideSelection([out, retval] VARIANT_BOOL* pbHideSelection);
        [id(0x00000002), propput, helpstring("Determines whether the selected item will display as selected when the TreeView loses focus"), helpcontext(0x0003353f)]
        HRESULT HideSelection([in] VARIANT_BOOL pbHideSelection);
        [id(0x00000003), propget, helpstring("Returns/sets the ImageList control to be used."), helpcontext(0x00033540)]
        HRESULT ImageList([out, retval] IDispatch** ppImageList);
        [id(0x00000003), propputref, helpstring("Returns/sets the ImageList control to be used."), helpcontext(0x00033540)]
        HRESULT ImageList([in] IDispatch* ppImageList);
        [id(0x00000003), propput, helpstring("Returns/sets the ImageList control to be used."), helpcontext(0x00033540)]
        HRESULT ImageList([in] IDispatch* ppImageList);
        [id(0x00000004), propget, helpstring("Returns/sets the width of the indentation for a TreeView control."), helpcontext(0x00033541)]
        HRESULT Indentation([out, retval] float* pfIndentation);
        [id(0x00000004), propput, helpstring("Returns/sets the width of the indentation for a TreeView control."), helpcontext(0x00033541)]
        HRESULT Indentation([in] float pfIndentation);
        [id(0x00000005), propget, helpstring("Returns/sets a value that determines if a user can edit the label of a ListItem or Node object."), helpcontext(0x00033542)]
        HRESULT LabelEdit([out, retval] LabelEditConstants* psLabelEdit);
        [id(0x00000005), propput, helpstring("Returns/sets a value that determines if a user can edit the label of a ListItem or Node object."), helpcontext(0x00033542)]
        HRESULT LabelEdit([in] LabelEditConstants psLabelEdit);
        [id(0x00000006), propget, helpstring("Returns/sets the style of lines displayed between Node objects."), helpcontext(0x00033543)]
        HRESULT LineStyle([out, retval] TreeLineStyleConstants* psLineStyle);
        [id(0x00000006), propput, helpstring("Returns/sets the style of lines displayed between Node objects."), helpcontext(0x00033543)]
        HRESULT LineStyle([in] TreeLineStyleConstants psLineStyle);
        [id(0x00000007), propget, helpstring("Returns/sets the type of mouse pointer displayed when over part of an object."), helpcontext(0x00033544)]
        HRESULT MousePointer([out, retval] MousePointerConstants* psMousePointer);
        [id(0x00000007), propput, helpstring("Returns/sets the type of mouse pointer displayed when over part of an object."), helpcontext(0x00033544)]
        HRESULT MousePointer([in] MousePointerConstants psMousePointer);
        [id(0x00000008), propget, helpstring("Sets a custom mouse icon."), helpcontext(0x00033545)]
        HRESULT MouseIcon([out, retval] stdole.IPictureDisp** ppMouseIcon);
        [id(0x00000008), propput, helpstring("Sets a custom mouse icon."), helpcontext(0x00033545)]
        HRESULT MouseIcon([in] stdole.IPictureDisp* ppMouseIcon);
        [id(0x00000008), propputref, helpstring("Sets a custom mouse icon."), helpcontext(0x00033545)]
        HRESULT MouseIcon([in] stdole.IPictureDisp* ppMouseIcon);
        [id(0x00000009), propget, helpstring("Returns a reference to a collection of Node objects."), helpcontext(0x00033546)]
        HRESULT Nodes([out, retval] INodes** ppNode);
        [id(0x00000009), propputref, helpstring("Returns a reference to a collection of Node objects."), helpcontext(0x00033546)]
        HRESULT Nodes([in] INodes* ppNode);
        [id(0x0000000a), propget, helpstring("Returns/sets the delimiter string used for the path returned by the FullPath property."), helpcontext(0x00033547)]
        HRESULT PathSeparator([out, retval] BSTR* pbstrPathSeparator);
        [id(0x0000000a), propput, helpstring("Returns/sets the delimiter string used for the path returned by the FullPath property."), helpcontext(0x00033547)]
        HRESULT PathSeparator([in] BSTR pbstrPathSeparator);
        [id(0x0000000b), propget, helpstring("Returns/sets a value which determines if a ListItem or Node object is selected."), helpcontext(0x00033548)]
        HRESULT SelectedItem([out, retval] INode** ppNode);
        [id(0x0000000b), propputref, helpstring("Returns/sets a value which determines if a ListItem or Node object is selected."), helpcontext(0x00033548)]
        HRESULT SelectedItem([in] INode* ppNode);
        [id(0x0000000b), propput, helpstring("Returns/sets a value which determines if a ListItem or Node object is selected."), helpcontext(0x00033548)]
        HRESULT SelectedItem([in] VARIANT* ppNode);
        [id(0x0000000c), propget, helpstring("Indicates whether the elements of a control are automatically sorted alphabetically."), helpcontext(0x00033549)]
        HRESULT Sorted([out, retval] VARIANT_BOOL* pbSorted);
        [id(0x0000000c), propput, helpstring("Indicates whether the elements of a control are automatically sorted alphabetically."), helpcontext(0x00033549)]
        HRESULT Sorted([in] VARIANT_BOOL pbSorted);
        [id(0x0000000d), propget, helpstring("Displays a hierarchical list of Node objects, each of which consists of a label and an optional bitmap."), helpcontext(0x0003354a)]
        HRESULT Style([out, retval] TreeStyleConstants* psStyle);
        [id(0x0000000d), propput, helpstring("Displays a hierarchical list of Node objects, each of which consists of a label and an optional bitmap."), helpcontext(0x0003354a)]
        HRESULT Style([in] TreeStyleConstants psStyle);
        [id(0x0000060e), propget, helpstring("Returns/Sets whether this control can act as an OLE drag/drop source, and whether this process is started automatically or under programmatic control."), helpcontext(0x00033691)]
        HRESULT OLEDragMode([out, retval] OLEDragConstants* psOLEDragMode);
        [id(0x0000060e), propput, helpstring("Returns/Sets whether this control can act as an OLE drag/drop source, and whether this process is started automatically or under programmatic control."), helpcontext(0x00033691)]
        HRESULT OLEDragMode([in] OLEDragConstants psOLEDragMode);
        [id(0x0000060f), propget, helpstring("Returns/Sets whether this control can act as an OLE drop target."), helpcontext(0x00033692)]
        HRESULT OLEDropMode([out, retval] OLEDropConstants* psOLEDropMode);
        [id(0x0000060f), propput, helpstring("Returns/Sets whether this control can act as an OLE drop target."), helpcontext(0x00033692)]
        HRESULT OLEDropMode([in] OLEDropConstants psOLEDropMode);
        [id(0xfffffdf8), propget, helpstring("Returns/sets whether or not controls, Forms or an MDIForm are painted at run time with 3-D effects."), helpcontext(0x0003354b)]
        HRESULT Appearance([out, retval] AppearanceConstants* psAppearance);
        [id(0xfffffdf8), propput, helpstring("Returns/sets whether or not controls, Forms or an MDIForm are painted at run time with 3-D effects."), helpcontext(0x0003354b)]
        HRESULT Appearance([in] AppearanceConstants psAppearance);
        [id(0xfffffe08), propget, helpstring("Returns/sets the border style for an object."), helpcontext(0x0003354c)]
        HRESULT BorderStyle([out, retval] BorderStyleConstants* psBorderStyle);
        [id(0xfffffe08), propput, helpstring("Returns/sets the border style for an object."), helpcontext(0x0003354c)]
        HRESULT BorderStyle([in] BorderStyleConstants psBorderStyle);
        [id(0xfffffdfe), propget, helpstring("Returns/sets a value that determines whether a form or control can respond to user-generated events."), helpcontext(0x0003354d)]
        HRESULT Enabled([out, retval] VARIANT_BOOL* pbEnabled);
        [id(0xfffffdfe), propput, helpstring("Returns/sets a value that determines whether a form or control can respond to user-generated events."), helpcontext(0x0003354d)]
        HRESULT Enabled([in] VARIANT_BOOL pbEnabled);
        [id(0xfffffe00), propget, helpstring("Returns a Font object."), helpcontext(0x0003354e)]
        HRESULT Font([out, retval] stdole.IFontDisp** ppFont);
        [id(0xfffffe00), propput, helpstring("Returns a Font object."), helpcontext(0x0003354e)]
        HRESULT Font([in] stdole.IFontDisp* ppFont);
        [id(0xfffffe00), propputref, helpstring("Returns a Font object."), helpcontext(0x0003354e)]
        HRESULT Font([in] stdole.IFontDisp* ppFont);
        [id(0xfffffdfd), propget, helpstring("Returns a handle to a form or control."), helpcontext(0x0003354f)]
        HRESULT hWnd([out, retval] stdole.OLE_HANDLE* phWnd);
        [id(0xfffffdfd), propput, helpstring("Returns a handle to a form or control."), helpcontext(0x0003354f)]
        HRESULT hWnd([in] stdole.OLE_HANDLE phWnd);
        [id(0x0000000e), helpstring("Returns a reference to the ListItem object or Node object located at the coordinates of x and y. Used with drag and drop operations."), helpcontext(0x00033550)]
        HRESULT HitTest(
            [in] float x,
            [in] float y,
            [out, retval] INode** ppNode);
        [id(0x0000000f), helpstring("Returns the number of Node objects that fit in the internal area of a TreeView control."), helpcontext(0x00033551)]
        HRESULT GetVisibleCount([out, retval] long* plVisibleCount);
        [id(0x00000010), helpstring("Begins a label editing operation on a ListItem or Node object."), helpcontext(0x00033552)]
        HRESULT StartLabelEdit();
        [id(0xfffffdda), helpstring("Forces a complete repaint of a form or control."), helpcontext(0x00033553)]
        HRESULT Refresh();
        [id(0xfffffdd8), hidden]
        HRESULT AboutBox();
        [id(0x00000610), helpstring("Starts an OLE drag/drop event with the given control as the source."), helpcontext(0x00033690)]
        HRESULT OLEDrag();
        [id(0x00000011), propget, helpstring("Returns/sets a value which determines if the control displays a checkbox next to each item in the tree."), helpcontext(0x00033785)]
        HRESULT Checkboxes([out, retval] VARIANT_BOOL* pbCheckboxes);
        [id(0x00000011), propput, helpstring("Returns/sets a value which determines if the control displays a checkbox next to each item in the tree."), helpcontext(0x00033785)]
        HRESULT Checkboxes([in] VARIANT_BOOL pbCheckboxes);
        [id(0x00000012), propget, helpstring("Returns/sets a value which determines if the entire row of the selected item is highlighted and clicking anywhere on an item's row causes it to be selected."), helpcontext(0x00033786)]
        HRESULT FullRowSelect([out, retval] VARIANT_BOOL* pbFullRowSelect);
        [id(0x00000012), propput, helpstring("Returns/sets a value which determines if the entire row of the selected item is highlighted and clicking anywhere on an item's row causes it to be selected."), helpcontext(0x00033786)]
        HRESULT FullRowSelect([in] VARIANT_BOOL pbFullRowSelect);
        [id(0x00000013), propget, helpstring("Returns/sets a value which determines if items are highlighted as the mousepointer passes over them."), helpcontext(0x00033787)]
        HRESULT HotTracking([out, retval] VARIANT_BOOL* pbHotTracking);
        [id(0x00000013), propput, helpstring("Returns/sets a value which determines if items are highlighted as the mousepointer passes over them."), helpcontext(0x00033787)]
        HRESULT HotTracking([in] VARIANT_BOOL pbHotTracking);
        [id(0x00000014), propget, helpstring("Returns/sets a value which determines if the TreeView displays scrollbars and allows scrolling (vertical and horizontal)."), helpcontext(0x00033788)]
        HRESULT Scroll([out, retval] VARIANT_BOOL* pbScroll);
        [id(0x00000014), propput, helpstring("Returns/sets a value which determines if the TreeView displays scrollbars and allows scrolling (vertical and horizontal)."), helpcontext(0x00033788)]
        HRESULT Scroll([in] VARIANT_BOOL pbScroll);
        [id(0x00000015), propget, helpstring("Returns/sets a value which determines if selecting a new item in the tree expands that item and collapses the previously selected item."), helpcontext(0x00033789)]
        HRESULT SingleSel([out, retval] VARIANT_BOOL* pbSingleSel);
        [id(0x00000015), propput, helpstring("Returns/sets a value which determines if selecting a new item in the tree expands that item and collapses the previously selected item."), helpcontext(0x00033789)]
        HRESULT SingleSel([in] VARIANT_BOOL pbSingleSel);
    };

    [
        uuid(C74190B5-8589-11D1-B16A-00C0F0283628),
        helpstring("Event interface for Tree Control"),
        helpcontext(0x000336b4),
        nonextensible
    ]
    dispinterface ITreeViewEvents {
    properties:
    methods:
        [id(0x00000001), helpstring("Occurs when a user attempts to edit the label of the currently selected ListItem or Node object."), helpcontext(0x00033554)]
        void BeforeLabelEdit(short* Cancel);
        [id(0x00000002), helpstring("Occurs after a user edits the label of the currently selected Node or ListItem object."), helpcontext(0x00033555)]
        void AfterLabelEdit(
            short* Cancel,
            BSTR* NewString);
        [id(0x00000003), helpstring("Generated when any Node object in a TreeView control is collapsed."), helpcontext(0x00033556)]
        void Collapse(Node* Node);
        [id(0x00000004), helpstring("Occurs when a Node object in a TreeView control is expanded; that is, when its child nodes become visible."), helpcontext(0x00033557)]
        void Expand(Node* Node);
        [id(0x00000005), helpstring("Occurs when a Node object is clicked."), helpcontext(0x00033558)]
        void NodeClick(Node* Node);
        [id(0xfffffda6), helpstring("Occurs when the user presses a key while an object has the focus."), helpcontext(0x00033559)]
        void KeyDown(
            short* KeyCode,
            short Shift);
        [id(0xfffffda4), helpstring("Occurs when the user releases a key while an object has the focus."), helpcontext(0x0003355a)]
        void KeyUp(
            short* KeyCode,
            short Shift);
        [id(0xfffffda5), helpstring("Occurs when the user presses and releases an ANSI key."), helpcontext(0x0003355b)]
        void KeyPress(short* KeyAscii);
        [id(0xfffffda3), helpstring("Occurs when the user presses the mouse button while an object has the focus."), helpcontext(0x0003355c)]
        void MouseDown(
            short Button,
            short Shift,
            stdole.OLE_XPOS_PIXELS x,
            stdole.OLE_YPOS_PIXELS y);
        [id(0xfffffda2), helpstring("Occurs when the user moves the mouse."), helpcontext(0x0003355d)]
        void MouseMove(
            short Button,
            short Shift,
            stdole.OLE_XPOS_PIXELS x,
            stdole.OLE_YPOS_PIXELS y);
        [id(0xfffffda1), helpstring("Occurs when the user releases the mouse button while an object has the focus."), helpcontext(0x0003355e)]
        void MouseUp(
            short Button,
            short Shift,
            stdole.OLE_XPOS_PIXELS x,
            stdole.OLE_YPOS_PIXELS y);
        [id(0xfffffda8), helpstring("Occurs when the user presses and then releases a mouse button over an object."), helpcontext(0x0003355f)]
        void Click();
        [id(0xfffffda7), helpstring("Occurs when you press and release a mouse button and then press and release it again over an object."), helpcontext(0x00033560)]
        void DblClick();
        [id(0x00000006), helpstring("Occurs when Checkboxes = True and a Node object is checked/unchecked."), helpcontext(0x000337d7)]
        void NodeCheck(Node* Node);
        [id(0x0000060e), helpstring("OLEStartDrag event"), helpcontext(0x000336cf)]
        void OLEStartDrag(
            [in, out] DataObject** Data,
            [in, out] long* AllowedEffects);
        [id(0x0000060f), helpstring("OLEGiveFeedback event"), helpcontext(0x000336d0)]
        void OLEGiveFeedback(
            [in, out] long* Effect,
            [in, out] VARIANT_BOOL* DefaultCursors);
        [id(0x00000610), helpstring("OLESetData event"), helpcontext(0x000336d1)]
        void OLESetData(
            [in, out] DataObject** Data,
            [in, out] short* DataFormat);
        [id(0x00000611), helpstring("OLECompleteDrag event"), helpcontext(0x000336d2)]
        void OLECompleteDrag([in, out] long* Effect);
        [id(0x00000612), helpstring("OLEDragOver event"), helpcontext(0x000336d3)]
        void OLEDragOver(
            [in, out] DataObject** Data,
            [in, out] long* Effect,
            [in, out] short* Button,
            [in, out] short* Shift,
            [in, out] float* x,
            [in, out] float* y,
            [in, out] short* State);
        [id(0x00000613), helpstring("OLEDragDrop event"), helpcontext(0x000336d4)]
        void OLEDragDrop(
            [in, out] DataObject** Data,
            [in, out] long* Effect,
            [in, out] short* Button,
            [in, out] short* Shift,
            [in, out] float* x,
            [in, out] float* y);
    };

    [
        uuid(C74190B6-8589-11D1-B16A-00C0F0283628),
        helpstring("Displays a hierarchical list of Node objects, each of which consists of a label and an optional bitmap."),
        helpcontext(0x00033528),
        licensed,
        control
    ]
    coclass TreeView {
        [default] interface ITreeView;
        [default, source] dispinterface ITreeViewEvents;
    };

    [
        odl,
        uuid(C74190B7-8589-11D1-B16A-00C0F0283628),
        helpstring("Treeview Nodes collection"),
        helpcontext(0x00033561),
        hidden,
        dual,
        nonextensible,
        oleautomation
    ]
    interface INodes : IDispatch {
        [id(0x00000001), propget, helpstring("Returns the number of objects in a collection."), helpcontext(0x00033562)]
        HRESULT Count([out, retval] short* psCount);
        [id(0x00000001), propput, helpstring("Returns the number of objects in a collection."), helpcontext(0x00033562)]
        HRESULT Count([in] short psCount);
        [id(00000000), propget, hidden]
        HRESULT ControlDefault(
            [in] VARIANT* Index,
            [out, retval] INode** ppNode);
        [id(00000000), propput, hidden]
        HRESULT ControlDefault(
            [in] VARIANT* Index,
            [in] INode* ppNode);
        [id(0x00000002), helpstring("Adds a Node object to a Nodes collection and returns a reference to the created object."), helpcontext(0x00033563)]
        HRESULT Add(
            [in, optional] VARIANT* Relative,
            [in, optional] VARIANT* Relationship,
            [in, optional] VARIANT* Key,
            [in, optional] VARIANT* Text,
            [in, optional] VARIANT* Image,
            [in, optional] VARIANT* SelectedImage,
            [out, retval, optional] INode** ppNode);
        [id(0x00000003), helpstring("Removes all objects in a collection."), helpcontext(0x00033564)]
        HRESULT Clear();
        [id(0x00000004), propget, helpstring("Returns a specific item of a Collection object either by position or by key."), helpcontext(0x00033565)]
        HRESULT Item(
            [in] VARIANT* Index,
            [out, retval] INode** ppNode);
        [id(0x00000004), propput, helpstring("Returns a specific item of a Collection object either by position or by key."), helpcontext(0x00033565)]
        HRESULT Item(
            [in] VARIANT* Index,
            [in] INode* ppNode);
        [id(0x00000005), helpstring("Removes a specific member from a collection."), helpcontext(0x00033566)]
        HRESULT Remove([in] VARIANT* Index);
        [id(0xfffffffc)]
        HRESULT _NewEnum([out, retval] IDispatch** ppNewEnum);
    };

    [
        uuid(0713E8C0-850A-101B-AFC0-4210102A8DA7),
        helpstring("Treeview Nodes collection"),
        helpcontext(0x00033561),
        noncreatable
    ]
    coclass Nodes {
        [default] interface INodes;
    };

    [
        odl,
        uuid(C74190B8-8589-11D1-B16A-00C0F0283628),
        helpstring("An object in a TreeView control that can contain images and text."),
        helpcontext(0x00033567),
        hidden,
        dual,
        nonextensible,
        oleautomation
    ]
    interface INode : IDispatch {
        [id(00000000), propget, hidden]
        HRESULT _ObjectDefault([out, retval] BSTR* pbstrText);
        [id(00000000), propput, hidden]
        HRESULT _ObjectDefault([in] BSTR pbstrText);
        [id(0x00000001), propget, helpstring("Returns a reference to the first child of a Node object."), helpcontext(0x00033568)]
        HRESULT Child([out, retval] INode** ppChild);
        [id(0x00000001), propputref, helpstring("Returns a reference to the first child of a Node object."), helpcontext(0x00033568)]
        HRESULT Child([in] INode* ppChild);
        [id(0x00000002), propget, helpstring("Returns the number of child nodes a Node object has."), helpcontext(0x00033569)]
        HRESULT Children([out, retval] short* psChildren);
        [id(0x00000002), propput, helpstring("Returns the number of child nodes a Node object has."), helpcontext(0x00033569)]
        HRESULT Children([in] short psChildren);
        [id(0x00000003), propget, helpstring("Returns/sets a value which specifies if a Node object is expanded."), helpcontext(0x0003356a)]
        HRESULT Expanded([out, retval] VARIANT_BOOL* pbExpanded);
        [id(0x00000003), propput, helpstring("Returns/sets a value which specifies if a Node object is expanded."), helpcontext(0x0003356a)]
        HRESULT Expanded([in] VARIANT_BOOL pbExpanded);
        [id(0x00000004), propget, helpstring("Returns/sets the Index or Key of an image in an ImageList control used when the Node is expanded."), helpcontext(0x0003356b)]
        HRESULT ExpandedImage([out, retval] VARIANT* pExpandedImage);
        [id(0x00000004), propput, helpstring("Returns/sets the Index or Key of an image in an ImageList control used when the Node is expanded."), helpcontext(0x0003356b)]
        HRESULT ExpandedImage([in] VARIANT pExpandedImage);
        [id(0x00000005), propget, helpstring("Returns a reference to the first Node object in a hierarchy level."), helpcontext(0x0003356c)]
        HRESULT FirstSibling([out, retval] INode** ppFirstSibling);
        [id(0x00000005), propputref, helpstring("Returns a reference to the first Node object in a hierarchy level."), helpcontext(0x0003356c)]
        HRESULT FirstSibling([in] INode* ppFirstSibling);
        [id(0x00000006), propget, helpstring("Returns the fully qualified name of a Node object."), helpcontext(0x0003356d)]
        HRESULT FullPath([out, retval] BSTR* pbstrFullPath);
        [id(0x00000006), propput, helpstring("Returns the fully qualified name of a Node object."), helpcontext(0x0003356d)]
        HRESULT FullPath([in] BSTR pbstrFullPath);
        [id(0x00000007), propget, helpstring("Returns/sets the index or key of a ListImage object to be used."), helpcontext(0x0003356e)]
        HRESULT Image([out, retval] VARIANT* pImage);
        [id(0x00000007), propput, helpstring("Returns/sets the index or key of a ListImage object to be used."), helpcontext(0x0003356e)]
        HRESULT Image([in] VARIANT pImage);
        [id(0x00000008), propget, helpstring("Returns/sets the index of an object in a collection. Read-only at run time."), helpcontext(0x0003356f)]
        HRESULT Index([out, retval] short* psIndex);
        [id(0x00000008), propput, helpstring("Returns/sets the index of an object in a collection. Read-only at run time."), helpcontext(0x0003356f)]
        HRESULT Index([in] short psIndex);
        [id(0x00000009), propget, helpstring("Returns/sets the unique string of an object in a collection."), helpcontext(0x00033570)]
        HRESULT Key([out, retval] BSTR* pbstrKey);
        [id(0x00000009), propput, helpstring("Returns/sets the unique string of an object in a collection."), helpcontext(0x00033570)]
        HRESULT Key([in] BSTR pbstrKey);
        [id(0x0000000a), propget, helpstring("Returns a reference to the last Node object in a hierarchy level."), helpcontext(0x00033571)]
        HRESULT LastSibling([out, retval] INode** ppLastSibling);
        [id(0x0000000a), propputref, helpstring("Returns a reference to the last Node object in a hierarchy level."), helpcontext(0x00033571)]
        HRESULT LastSibling([in] INode* ppLastSibling);
        [id(0x0000000b), propget, helpstring("Returns a reference to the next Node object in a hierarchy level."), helpcontext(0x00033572)]
        HRESULT Next([out, retval] INode** ppNext);
        [id(0x0000000b), propputref, helpstring("Returns a reference to the next Node object in a hierarchy level."), helpcontext(0x00033572)]
        HRESULT Next([in] INode* ppNext);
        [id(0x0000000c), propget, helpstring("Returns/sets a reference to the parent of a Node object."), helpcontext(0x00033573)]
        HRESULT Parent([out, retval] INode** ppParent);
        [id(0x0000000c), propputref, helpstring("Returns/sets a reference to the parent of a Node object."), helpcontext(0x00033573)]
        HRESULT Parent([in] INode* ppParent);
        [id(0x0000000d), propget, helpstring("Returns a reference to the previous Node object in a hierarchy level."), helpcontext(0x00033574)]
        HRESULT Previous([out, retval] INode** ppPrevious);
        [id(0x0000000d), propputref, helpstring("Returns a reference to the previous Node object in a hierarchy level."), helpcontext(0x00033574)]
        HRESULT Previous([in] INode* ppPrevious);
        [id(0x0000000e), propget, helpstring("Returns a reference to the root Node object of a TreeView control."), helpcontext(0x00033575)]
        HRESULT Root([out, retval] INode** ppRoot);
        [id(0x0000000e), propputref, helpstring("Returns a reference to the root Node object of a TreeView control."), helpcontext(0x00033575)]
        HRESULT Root([in] INode* ppRoot);
        [id(0x0000000f), propget, helpstring("Returns/sets a value which determines if a ListItem or Node object is selected."), helpcontext(0x00033576)]
        HRESULT Selected([out, retval] VARIANT_BOOL* pbSelected);
        [id(0x0000000f), propput, helpstring("Returns/sets a value which determines if a ListItem or Node object is selected."), helpcontext(0x00033576)]
        HRESULT Selected([in] VARIANT_BOOL pbSelected);
        [id(0x00000010), propget, helpstring("Returns/sets the Index or Key of an image in an ImageList control which is displayed when a Node object is selected."), helpcontext(0x00033577)]
        HRESULT SelectedImage([out, retval] VARIANT* pSelectedImage);
        [id(0x00000010), propput, helpstring("Returns/sets the Index or Key of an image in an ImageList control which is displayed when a Node object is selected."), helpcontext(0x00033577)]
        HRESULT SelectedImage([in] VARIANT pSelectedImage);
        [id(0x00000011), propget, helpstring("Indicates whether the elements of a control are automatically sorted alphabetically."), helpcontext(0x00033578)]
        HRESULT Sorted([out, retval] VARIANT_BOOL* pbSorted);
        [id(0x00000011), propput, helpstring("Indicates whether the elements of a control are automatically sorted alphabetically."), helpcontext(0x00033578)]
        HRESULT Sorted([in] VARIANT_BOOL pbSorted);
        [id(0x00000012), propget, helpstring("Stores any extra data needed for your program."), helpcontext(0x00033579)]
        HRESULT Tag([out, retval] VARIANT* pvTag);
        [id(0x00000012), propput, helpstring("Stores any extra data needed for your program."), helpcontext(0x00033579)]
        HRESULT Tag([in] VARIANT pvTag);
        [id(0x00000013), propget, helpstring("Returns/sets the text to be displayed in a control."), helpcontext(0x0003357a)]
        HRESULT Text([out, retval] BSTR* bstrText);
        [id(0x00000013), propput, helpstring("Returns/sets the text to be displayed in a control."), helpcontext(0x0003357a)]
        HRESULT Text([in] BSTR bstrText);
        [id(0x00000014), propget, helpstring("Returns/sets a value that determines whether an object is visible or hidden."), helpcontext(0x0003357b)]
        HRESULT Visible([out, retval] VARIANT_BOOL* pbVisible);
        [id(0x00000014), propput, helpstring("Returns/sets a value that determines whether an object is visible or hidden."), helpcontext(0x0003357b)]
        HRESULT Visible([in] VARIANT_BOOL pbVisible);
        [id(0x00000015), helpstring("Creates a composite image from an icon and a caption for use in drag and drop operations."), helpcontext(0x0003357c)]
        HRESULT CreateDragImage([out, retval] stdole.IPictureDisp** ppDragImage);
        [id(0x00000016), helpstring("Ensures a ListItem or Node object is visible, scrolling or expanding the control if necessary."), helpcontext(0x0003357d)]
        HRESULT EnsureVisible([out, retval] VARIANT_BOOL* pbEnsureVisible);
        [id(0x00000017), propget, helpstring("Returns/sets the background color used to display text for a Node object."), helpcontext(0x0003378a)]
        HRESULT BackColor([out, retval] stdole.OLE_COLOR* pocBackColor);
        [id(0x00000017), propput, helpstring("Returns/sets the background color used to display text for a Node object."), helpcontext(0x0003378a)]
        HRESULT BackColor([in] stdole.OLE_COLOR pocBackColor);
        [id(0x00000018), propget, helpstring("Returns/sets a value that determines whether the text for a Node object is displayed with a bold font."), helpcontext(0x0003378b)]
        HRESULT Bold([out, retval] VARIANT_BOOL* pbBold);
        [id(0x00000018), propput, helpstring("Returns/sets a value that determines whether the text for a Node object is displayed with a bold font."), helpcontext(0x0003378b)]
        HRESULT Bold([in] VARIANT_BOOL pbBold);
        [id(0x00000019), propget, helpstring("Returns/sets a value that determines whether a Node object is checked."), helpcontext(0x0003378c)]
        HRESULT Checked([out, retval] VARIANT_BOOL* pbChecked);
        [id(0x00000019), propput, helpstring("Returns/sets a value that determines whether a Node object is checked."), helpcontext(0x0003378c)]
        HRESULT Checked([in] VARIANT_BOOL pbChecked);
        [id(0x0000001a), propget, helpstring("Returns/sets the foreground color used to display text for a Node object."), helpcontext(0x0003378d)]
        HRESULT ForeColor([out, retval] stdole.OLE_COLOR* pocForeColor);
        [id(0x0000001a), propput, helpstring("Returns/sets the foreground color used to display text for a Node object."), helpcontext(0x0003378d)]
        HRESULT ForeColor([in] stdole.OLE_COLOR pocForeColor);
        [id(0x00000012), propputref, helpstring("Stores any extra data needed for your program."), helpcontext(0x00033579)]
        HRESULT Tag([in] VARIANT pvTag);
    };

    [
        uuid(C74190B9-8589-11D1-B16A-00C0F0283628),
        helpstring("An object in a TreeView control that can contain images and text."),
        helpcontext(0x00033567),
        noncreatable
    ]
    coclass Node {
        [default] interface INode;
    };

    typedef [uuid(BDD1F040-858B-11D1-B16A-00C0F0283628), helpstring("TextBackground constants"), helpcontext(0x000337d9)]
    enum {
        lvwTransparent = 0,
        lvwOpaque = 1
    } ListTextBackgroundConstants;

    typedef [uuid(BDD1F041-858B-11D1-B16A-00C0F0283628), helpstring("ListArrange constants"), helpcontext(0x0003357f)]
    enum {
        lvwNone = 0,
        lvwAutoLeft = 1,
        lvwAutoTop = 2
    } ListArrangeConstants;

    typedef [uuid(BDD1F042-858B-11D1-B16A-00C0F0283628), helpstring("Determines the placement of the background picture."), helpcontext(0x000337c4)]
    enum {
        lvwTopLeft = 0,
        lvwTopRight = 1,
        lvwBottomLeft = 2,
        lvwBottomRight = 3,
        lvwCenter = 4,
        lvwTile = 5
    } ListPictureAlignmentConstants;

    typedef [uuid(BDD1F043-858B-11D1-B16A-00C0F0283628), helpstring("LabelEdit constants"), helpcontext(0x00033583)]
    enum {
        lvwAutomatic = 0,
        lvwManual = 1
    } ListLabelEditConstants;

    typedef [uuid(BDD1F044-858B-11D1-B16A-00C0F0283628), helpstring("SortOrder constants"), helpcontext(0x00033586)]
    enum {
        lvwAscending = 0,
        lvwDescending = 1
    } ListSortOrderConstants;

    typedef [uuid(BDD1F045-858B-11D1-B16A-00C0F0283628), helpstring("View constants"), helpcontext(0x00033589)]
    enum {
        lvwIcon = 0,
        lvwSmallIcon = 1,
        lvwList = 2,
        lvwReport = 3
    } ListViewConstants;

    typedef [uuid(BDD1F046-858B-11D1-B16A-00C0F0283628), helpstring("ColumnAlignment constants"), helpcontext(0x0003358e)]
    enum {
        lvwColumnLeft = 0,
        lvwColumnRight = 1,
        lvwColumnCenter = 2
    } ListColumnAlignmentConstants;

    typedef [uuid(BDD1F047-858B-11D1-B16A-00C0F0283628), helpstring("FindItemWhere constants"), helpcontext(0x00033592)]
    enum {
        lvwText = 0,
        lvwSubItem = 1,
        lvwTag = 2
    } ListFindItemWhereConstants;

    typedef [uuid(BDD1F048-858B-11D1-B16A-00C0F0283628), helpstring("FindItemHow constants"), helpcontext(0x00033596)]
    enum {
        lvwWhole = 0,
        lvwPartial = 1
    } ListFindItemHowConstants;

    [
        odl,
        uuid(BDD1F049-858B-11D1-B16A-00C0F0283628),
        helpstring("Displays a collection of ListItems such as files or folders."),
        helpcontext(0x0003357e),
        hidden,
        dual,
        nonextensible,
        oleautomation
    ]
    interface IListView : IDispatch {
        [id(0x00000001), propget, helpstring("Returns/sets how the icons in a ListView control's Icon or SmallIcon view are arranged."), helpcontext(0x00033599)]
        HRESULT Arrange([out, retval] ListArrangeConstants* pArrange);
        [id(0x00000001), propput, helpstring("Returns/sets how the icons in a ListView control's Icon or SmallIcon view are arranged."), helpcontext(0x00033599)]
        HRESULT Arrange([in] ListArrangeConstants pArrange);
        [id(0x00000002), propget, helpstring("Returns a reference to a collection of ColumnHeader objects."), helpcontext(0x0003359a)]
        HRESULT ColumnHeaders([out, retval] IColumnHeaders** ppIColumnHeaders);
        [id(0x00000002), propput, helpstring("Returns a reference to a collection of ColumnHeader objects."), helpcontext(0x0003359a)]
        HRESULT ColumnHeaders([in] IColumnHeaders* ppIColumnHeaders);
        [id(0x00000003), propget, helpstring("Returns a reference to a Node or ListItem object and highlights the object with the system highlight color."), helpcontext(0x0003359b)]
        HRESULT DropHighlight([out, retval] IListItem** ppIListItem);
        [id(0x00000003), propputref, helpstring("Returns a reference to a Node or ListItem object and highlights the object with the system highlight color."), helpcontext(0x0003359b)]
        HRESULT DropHighlight([in] IListItem* ppIListItem);
        [id(0x00000003), propput, helpstring("Returns a reference to a Node or ListItem object and highlights the object with the system highlight color."), helpcontext(0x0003359b)]
        HRESULT DropHighlight([in] VARIANT* ppIListItem);
        [id(0x00000004), propget, helpstring("Returns/sets whether or not a ListView control's column headers are hidden in Report view."), helpcontext(0x0003359c)]
        HRESULT HideColumnHeaders([out, retval] VARIANT_BOOL* pfHide);
        [id(0x00000004), propput, helpstring("Returns/sets whether or not a ListView control's column headers are hidden in Report view."), helpcontext(0x0003359c)]
        HRESULT HideColumnHeaders([in] VARIANT_BOOL pfHide);
        [id(0x00000005), propget, helpstring("Determines whether the selected item will display as selected when the ListView loses focus"), helpcontext(0x0003359d)]
        HRESULT HideSelection([out, retval] VARIANT_BOOL* pfHide);
        [id(0x00000005), propput, helpstring("Determines whether the selected item will display as selected when the ListView loses focus"), helpcontext(0x0003359d)]
        HRESULT HideSelection([in] VARIANT_BOOL pfHide);
        [id(0x00000006), propget, helpstring("Returns/sets the images associated with the Icon properties of a ListView control."), helpcontext(0x0003359e)]
        HRESULT Icons([out, retval] IDispatch** ppIcons);
        [id(0x00000006), propputref, helpstring("Returns/sets the images associated with the Icon properties of a ListView control."), helpcontext(0x0003359e)]
        HRESULT Icons([in] IDispatch* ppIcons);
        [id(0x00000006), propput, helpstring("Returns/sets the images associated with the Icon properties of a ListView control."), helpcontext(0x0003359e)]
        HRESULT Icons([in] IDispatch* ppIcons);
        [id(0x00000007), propget, helpstring("Returns a reference to a collection of ListItem objects in a ListView control."), helpcontext(0x0003359f)]
        HRESULT ListItems([out, retval] IListItems** ppListItems);
        [id(0x00000007), propput, helpstring("Returns a reference to a collection of ListItem objects in a ListView control."), helpcontext(0x0003359f)]
        HRESULT ListItems([in] IListItems* ppListItems);
        [id(0x00000008), propget, helpstring("Returns/sets a value that determines if a user can edit the label of a ListItem or Node object."), helpcontext(0x000335a0)]
        HRESULT LabelEdit([out, retval] ListLabelEditConstants* pRet);
        [id(0x00000008), propput, helpstring("Returns/sets a value that determines if a user can edit the label of a ListItem or Node object."), helpcontext(0x000335a0)]
        HRESULT LabelEdit([in] ListLabelEditConstants pRet);
        [id(0x00000009), propget, helpstring("Returns or sets a value that determines if labels are wrapped when the ListView is in Icon view."), helpcontext(0x000335a1)]
        HRESULT LabelWrap([out, retval] VARIANT_BOOL* pfOn);
        [id(0x00000009), propput, helpstring("Returns or sets a value that determines if labels are wrapped when the ListView is in Icon view."), helpcontext(0x000335a1)]
        HRESULT LabelWrap([in] VARIANT_BOOL pfOn);
        [id(0x0000000a), propget, helpstring("Sets a custom mouse icon."), helpcontext(0x000335a2)]
        HRESULT MouseIcon([out, retval] stdole.IPictureDisp** ppMouseIcon);
        [id(0x0000000a), propput, helpstring("Sets a custom mouse icon."), helpcontext(0x000335a2)]
        HRESULT MouseIcon([in] stdole.IPictureDisp* ppMouseIcon);
        [id(0x0000000a), propputref, helpstring("Sets a custom mouse icon."), helpcontext(0x000335a2)]
        HRESULT MouseIcon([in] stdole.IPictureDisp* ppMouseIcon);
        [id(0x0000000b), propget, helpstring("Returns/sets the type of mouse pointer displayed when over part of an object."), helpcontext(0x000335a3)]
        HRESULT MousePointer([out, retval] MousePointerConstants* pnIndex);
        [id(0x0000000b), propput, helpstring("Returns/sets the type of mouse pointer displayed when over part of an object."), helpcontext(0x000335a3)]
        HRESULT MousePointer([in] MousePointerConstants pnIndex);
        [id(0x0000000c), propget, helpstring("Returns/sets a value indicating whether a user can make multiple selections in the ListView control and how the multiple selections can be made."), helpcontext(0x000335a4)]
        HRESULT MultiSelect([out, retval] VARIANT_BOOL* pfOn);
        [id(0x0000000c), propput, helpstring("Returns/sets a value indicating whether a user can make multiple selections in the ListView control and how the multiple selections can be made."), helpcontext(0x000335a4)]
        HRESULT MultiSelect([in] VARIANT_BOOL pfOn);
        [id(0x0000000d), propget, helpstring("Returns a reference to the currently selected ListItem or Node object."), helpcontext(0x000335a5)]
        HRESULT SelectedItem([out, retval] IListItem** ppListItem);
        [id(0x0000000d), propputref, helpstring("Returns a reference to the currently selected ListItem or Node object."), helpcontext(0x000335a5)]
        HRESULT SelectedItem([in] IListItem* ppListItem);
        [id(0x0000000d), propput, helpstring("Returns a reference to the currently selected ListItem or Node object."), helpcontext(0x000335a5)]
        HRESULT SelectedItem([in] VARIANT* ppListItem);
        [id(0x0000000e), propget, helpstring("Returns/sets the images associated with the SmallIcons property of a ListView control."), helpcontext(0x000335a6)]
        HRESULT SmallIcons([out, retval] IDispatch** ppImageList);
        [id(0x0000000e), propputref, helpstring("Returns/sets the images associated with the SmallIcons property of a ListView control."), helpcontext(0x000335a6)]
        HRESULT SmallIcons([in] IDispatch* ppImageList);
        [id(0x0000000e), propput, helpstring("Returns/sets the images associated with the SmallIcons property of a ListView control."), helpcontext(0x000335a6)]
        HRESULT SmallIcons([in] IDispatch* ppImageList);
        [id(0x0000000f), propget, helpstring("Indicates whether the elements of a control are automatically sorted alphabetically."), helpcontext(0x000335a7)]
        HRESULT Sorted([out, retval] VARIANT_BOOL* pfOn);
        [id(0x0000000f), propput, helpstring("Indicates whether the elements of a control are automatically sorted alphabetically."), helpcontext(0x000335a7)]
        HRESULT Sorted([in] VARIANT_BOOL pfOn);
        [id(0x00000010), propget, helpstring("Returns/sets the current sort key."), helpcontext(0x000335a8)]
        HRESULT SortKey([out, retval] short* psKey);
        [id(0x00000010), propput, helpstring("Returns/sets the current sort key."), helpcontext(0x000335a8)]
        HRESULT SortKey([in] short psKey);
        [id(0x00000011), propget, helpstring("Returns/sets whether or not the ListItems will be sorted in ascending or descending order."), helpcontext(0x000335a9)]
        HRESULT SortOrder([out, retval] ListSortOrderConstants* pOrder);
        [id(0x00000011), propput, helpstring("Returns/sets whether or not the ListItems will be sorted in ascending or descending order."), helpcontext(0x000335a9)]
        HRESULT SortOrder([in] ListSortOrderConstants pOrder);
        [id(0x00000012), propget, helpstring("Returns/sets the current view of the ListView control."), helpcontext(0x000335aa)]
        HRESULT View([out, retval] ListViewConstants* pnView);
        [id(0x00000012), propput, helpstring("Returns/sets the current view of the ListView control."), helpcontext(0x000335aa)]
        HRESULT View([in] ListViewConstants pnView);
        [id(0x0000060e), propget, helpstring("Returns/Sets whether this control can act as an OLE drag/drop source, and whether this process is started automatically or under programmatic control."), helpcontext(0x00033691)]
        HRESULT OLEDragMode([out, retval] OLEDragConstants* psOLEDragMode);
        [id(0x0000060e), propput, helpstring("Returns/Sets whether this control can act as an OLE drag/drop source, and whether this process is started automatically or under programmatic control."), helpcontext(0x00033691)]
        HRESULT OLEDragMode([in] OLEDragConstants psOLEDragMode);
        [id(0x0000060f), propget, helpstring("Returns/Sets whether this control can act as an OLE drop target."), helpcontext(0x00033692)]
        HRESULT OLEDropMode([out, retval] OLEDropConstants* psOLEDropMode);
        [id(0x0000060f), propput, helpstring("Returns/Sets whether this control can act as an OLE drop target."), helpcontext(0x00033692)]
        HRESULT OLEDropMode([in] OLEDropConstants psOLEDropMode);
        [id(0xfffffdf8), propget, helpstring("Returns/sets whether or not controls, Forms or an MDIForm are painted at run time with 3-D effects."), helpcontext(0x000335ab)]
        HRESULT Appearance([out, retval] AppearanceConstants* pnAppearance);
        [id(0xfffffdf8), propput, helpstring("Returns/sets whether or not controls, Forms or an MDIForm are painted at run time with 3-D effects."), helpcontext(0x000335ab)]
        HRESULT Appearance([in] AppearanceConstants pnAppearance);
        [id(0xfffffe0b), propget, helpstring("Returns/sets the background color used to display text and graphics in an object."), helpcontext(0x000335ac)]
        HRESULT BackColor([out, retval] stdole.OLE_COLOR* pcrBack);
        [id(0xfffffe0b), propput, helpstring("Returns/sets the background color used to display text and graphics in an object."), helpcontext(0x000335ac)]
        HRESULT BackColor([in] stdole.OLE_COLOR pcrBack);
        [id(0xfffffe08), propget, helpstring("Returns/sets the border style for an object."), helpcontext(0x000335ad)]
        HRESULT BorderStyle([out, retval] BorderStyleConstants* pnStyle);
        [id(0xfffffe08), propput, helpstring("Returns/sets the border style for an object."), helpcontext(0x000335ad)]
        HRESULT BorderStyle([in] BorderStyleConstants pnStyle);
        [id(0xfffffdfe), propget, helpstring("Returns/sets a value that determines whether a form or control can respond to user-generated events."), helpcontext(0x000335ae)]
        HRESULT Enabled([out, retval] VARIANT_BOOL* pfEnabled);
        [id(0xfffffdfe), propput, helpstring("Returns/sets a value that determines whether a form or control can respond to user-generated events."), helpcontext(0x000335ae)]
        HRESULT Enabled([in] VARIANT_BOOL pfEnabled);
        [id(0xfffffe00), propget, helpstring("Returns a Font object."), helpcontext(0x000335af)]
        HRESULT Font([out, retval] stdole.IFontDisp** ppFontDisp);
        [id(0xfffffe00), propputref, helpstring("Returns a Font object."), helpcontext(0x000335af)]
        HRESULT Font([in] stdole.IFontDisp* ppFontDisp);
        [id(0xfffffdff), propget, helpstring("Returns/sets the background color used to display text and graphics in an object."), helpcontext(0x000335b0)]
        HRESULT ForeColor([out, retval] stdole.OLE_COLOR* pcrFore);
        [id(0xfffffdff), propput, helpstring("Returns/sets the background color used to display text and graphics in an object."), helpcontext(0x000335b0)]
        HRESULT ForeColor([in] stdole.OLE_COLOR pcrFore);
        [id(0xfffffdfd), propget, helpstring("Returns a handle to a form or control."), helpcontext(0x000335b1)]
        HRESULT hWnd([out, retval] stdole.OLE_HANDLE* phWnd);
        [id(0xfffffdfd), propput, helpstring("Returns a handle to a form or control."), helpcontext(0x000335b1)]
        HRESULT hWnd([in] stdole.OLE_HANDLE phWnd);
        [id(0x00000013), helpstring("Finds an item in the list and returns a reference to that item."), helpcontext(0x000335b2)]
        HRESULT FindItem(
            [in] BSTR sz,
            [in, optional] VARIANT* Where,
            [in, optional] VARIANT* Index,
            [in, optional] VARIANT* fPartial,
            [out, retval, optional] IListItem** ppIListItem);
        [id(0x00000014), helpstring("Retrieves a reference of the first item visible in the client area."), helpcontext(0x000335b3)]
        HRESULT GetFirstVisible([out, retval] IListItem** ppIListItem);
        [id(0x00000015), helpstring("Returns a reference to the ListItem object or Node object located at the coordinates of x and y. Used with drag and drop operations."), helpcontext(0x000335b4)]
        HRESULT HitTest(
            [in] float x,
            [in] float y,
            [out, retval] IListItem** ppListItem);
        [id(0x00000016), helpstring("Begins a label editing operation on a ListItem or Node object."), helpcontext(0x000335b5)]
        HRESULT StartLabelEdit();
        [id(0x00000610), helpstring("Starts an OLE drag/drop event with the given control as the source."), helpcontext(0x00033690)]
        HRESULT OLEDrag();
        [id(0xfffffdda), helpstring("Forces a complete repaint of a form or control."), helpcontext(0x000335b6)]
        void Refresh();
        [id(0xfffffdd8), hidden]
        void AboutBox();
        [id(0x00000017), propget, helpstring("Returns/sets whether a user can reorder columns in report view."), helpcontext(0x000337b8)]
        HRESULT AllowColumnReorder([out, retval] VARIANT_BOOL* pfAllowColumnReorder);
        [id(0x00000017), propput, helpstring("Returns/sets whether a user can reorder columns in report view."), helpcontext(0x000337b8)]
        HRESULT AllowColumnReorder([in] VARIANT_BOOL pfAllowColumnReorder);
        [id(0x00000018), propget, helpstring("Returns/sets a value which determines if the control displays a checkbox next to each item in the list."), helpcontext(0x000337c2)]
        HRESULT Checkboxes([out, retval] VARIANT_BOOL* pfCheckboxes);
        [id(0x00000018), propput, helpstring("Returns/sets a value which determines if the control displays a checkbox next to each item in the list."), helpcontext(0x000337c2)]
        HRESULT Checkboxes([in] VARIANT_BOOL pfCheckboxes);
        [id(0x00000019), propget, helpstring("Returns/sets whether the scrollbars appear flat."), helpcontext(0x000337b9)]
        HRESULT FlatScrollBar([out, retval] VARIANT_BOOL* pfFlatScrollBar);
        [id(0x00000019), propput, helpstring("Returns/sets whether the scrollbars appear flat."), helpcontext(0x000337b9)]
        HRESULT FlatScrollBar([in] VARIANT_BOOL pfFlatScrollBar);
        [id(0x0000001a), propget, helpstring("Returns/sets whether selecting a column highlights the entire row."), helpcontext(0x000337ba)]
        HRESULT FullRowSelect([out, retval] VARIANT_BOOL* pfFullRowSelect);
        [id(0x0000001a), propput, helpstring("Returns/sets whether selecting a column highlights the entire row."), helpcontext(0x000337ba)]
        HRESULT FullRowSelect([in] VARIANT_BOOL pfFullRowSelect);
        [id(0x0000001b), propget, helpstring("Returns/sets whether grid lines appear between rows and columns"), helpcontext(0x000337bb)]
        HRESULT GridLines([out, retval] VARIANT_BOOL* pfGridLines);
        [id(0x0000001b), propput, helpstring("Returns/sets whether grid lines appear between rows and columns"), helpcontext(0x000337bb)]
        HRESULT GridLines([in] VARIANT_BOOL pfGridLines);
        [id(0x0000001c), propget, helpstring("Returns/sets whether hot tracking is enabled."), helpcontext(0x000337bc)]
        HRESULT HotTracking([out, retval] VARIANT_BOOL* pfHotTracking);
        [id(0x0000001c), propput, helpstring("Returns/sets whether hot tracking is enabled."), helpcontext(0x000337bc)]
        HRESULT HotTracking([in] VARIANT_BOOL pfHotTracking);
        [id(0x0000001d), propget, helpstring("Returns/sets whether hover selection is enabled."), helpcontext(0x000337bd)]
        HRESULT HoverSelection([out, retval] VARIANT_BOOL* pfHoverSelection);
        [id(0x0000001d), propput, helpstring("Returns/sets whether hover selection is enabled."), helpcontext(0x000337bd)]
        HRESULT HoverSelection([in] VARIANT_BOOL pfHoverSelection);
        [id(0x0000001f), propget, helpstring("Returns/sets the background picture for the control."), helpcontext(0x000337c0)]
        HRESULT Picture([out, retval] stdole.IPictureDisp** ppPictureDisp);
        [id(0x0000001f), propput, helpstring("Returns/sets the background picture for the control."), helpcontext(0x000337c0)]
        HRESULT Picture([in] stdole.IPictureDisp* ppPictureDisp);
        [id(0x0000001f), propputref, helpstring("Returns/sets the background picture for the control."), helpcontext(0x000337c0)]
        HRESULT Picture([in] stdole.IPictureDisp* ppPictureDisp);
        [id(0x0000001e), propget, helpstring("Returns/sets the picture alignment."), helpcontext(0x000337cb)]
        HRESULT PictureAlignment([out, retval] ListPictureAlignmentConstants* psAlignment);
        [id(0x0000001e), propput, helpstring("Returns/sets the picture alignment."), helpcontext(0x000337cb)]
        HRESULT PictureAlignment([in] ListPictureAlignmentConstants psAlignment);
        [id(0x00000020), propget, helpstring("Returns/sets the ImageList control to be used for ColumnHeader icons."), helpcontext(0x000337be)]
        HRESULT ColumnHeaderIcons([out, retval] IDispatch** ppImageList);
        [id(0x00000020), propputref, helpstring("Returns/sets the ImageList control to be used for ColumnHeader icons."), helpcontext(0x000337be)]
        HRESULT ColumnHeaderIcons([in] IDispatch* ppImageList);
        [id(0x00000020), propput, helpstring("Returns/sets the ImageList control to be used for ColumnHeader icons."), helpcontext(0x000337be)]
        HRESULT ColumnHeaderIcons([in] IDispatch* ppImageList);
        [id(0x00000021), propget, helpstring("Returns/sets a value that determines if the text background is transparent or uses the ListView background color"), helpcontext(0x000337d8)]
        HRESULT TextBackground([out, retval] ListTextBackgroundConstants* penumTextBackground);
        [id(0x00000021), propput, helpstring("Returns/sets a value that determines if the text background is transparent or uses the ListView background color"), helpcontext(0x000337d8)]
        HRESULT TextBackground([in] ListTextBackgroundConstants penumTextBackground);
    };

    [
        uuid(BDD1F04A-858B-11D1-B16A-00C0F0283628),
        helpstring("Event interface for List View Control"),
        helpcontext(0x000336af),
        nonextensible
    ]
    dispinterface ListViewEvents {
    properties:
    methods:
        [id(0x00000001), helpstring("Occurs when a user attempts to edit the label of the currently selected ListItem or Node object."), helpcontext(0x000335b7)]
        void BeforeLabelEdit(short* Cancel);
        [id(0x00000002), helpstring("Occurs after a user edits the label of the currently selected Node or ListItem object."), helpcontext(0x000335b8)]
        void AfterLabelEdit(
            short* Cancel,
            BSTR* NewString);
        [id(0x00000003), helpstring("Occurs when a ColumnHeader object in a ListView control is clicked."), helpcontext(0x000335b9)]
        void ColumnClick(ColumnHeader* ColumnHeader);
        [id(0x00000004), helpstring("Occurs when a ListItem object is clicked or selected"), helpcontext(0x000335ba)]
        void ItemClick(ListItem* Item);
        [id(0xfffffda6), helpstring("Occurs when the user presses a key while an object has the focus."), helpcontext(0x000335bb)]
        void KeyDown(
            short* KeyCode,
            short Shift);
        [id(0xfffffda4), helpstring("Occurs when the user releases a key while an object has the focus."), helpcontext(0x000335bc)]
        void KeyUp(
            short* KeyCode,
            short Shift);
        [id(0xfffffda5), helpstring("Occurs when the user presses and releases an ANSI key."), helpcontext(0x000335bd)]
        void KeyPress(short* KeyAscii);
        [id(0xfffffda3), helpstring("Occurs when the user presses the mouse button while an object has the focus."), helpcontext(0x000335be)]
        void MouseDown(
            short Button,
            short Shift,
            stdole.OLE_XPOS_PIXELS x,
            stdole.OLE_YPOS_PIXELS y);
        [id(0xfffffda2), helpstring("Occurs when the user moves the mouse."), helpcontext(0x000335bf)]
        void MouseMove(
            short Button,
            short Shift,
            stdole.OLE_XPOS_PIXELS x,
            stdole.OLE_YPOS_PIXELS y);
        [id(0xfffffda1), helpstring("Occurs when the user releases the mouse button while an object has the focus."), helpcontext(0x000335c0)]
        void MouseUp(
            short Button,
            short Shift,
            stdole.OLE_XPOS_PIXELS x,
            stdole.OLE_YPOS_PIXELS y);
        [id(0xfffffda8), helpstring("Occurs when the user presses and then releases a mouse button over an object."), helpcontext(0x000335c1)]
        void Click();
        [id(0xfffffda7), helpstring("Occurs when you press and release a mouse button and then press and release it again over an object."), helpcontext(0x000335c2)]
        void DblClick();
        [id(0x0000060e), helpstring("OLEStartDrag event"), helpcontext(0x000336cf)]
        void OLEStartDrag(
            [in, out] DataObject** Data,
            [in, out] long* AllowedEffects);
        [id(0x0000060f), helpstring("OLEGiveFeedback event"), helpcontext(0x000336d0)]
        void OLEGiveFeedback(
            [in, out] long* Effect,
            [in, out] VARIANT_BOOL* DefaultCursors);
        [id(0x00000610), helpstring("OLESetData event"), helpcontext(0x000336d1)]
        void OLESetData(
            [in, out] DataObject** Data,
            [in, out] short* DataFormat);
        [id(0x00000611), helpstring("OLECompleteDrag event"), helpcontext(0x000336d2)]
        void OLECompleteDrag([in, out] long* Effect);
        [id(0x00000612), helpstring("OLEDragOver event"), helpcontext(0x000336d3)]
        void OLEDragOver(
            [in, out] DataObject** Data,
            [in, out] long* Effect,
            [in, out] short* Button,
            [in, out] short* Shift,
            [in, out] float* x,
            [in, out] float* y,
            [in, out] short* State);
        [id(0x00000613), helpstring("OLEDragDrop event"), helpcontext(0x000336d4)]
        void OLEDragDrop(
            [in, out] DataObject** Data,
            [in, out] long* Effect,
            [in, out] short* Button,
            [in, out] short* Shift,
            [in, out] float* x,
            [in, out] float* y);
        [id(0x00000005), helpstring("Occurs when a ListSubItem object is checked"), helpcontext(0x000337c3)]
        void ItemCheck(ListItem* Item);
    };

    [
        uuid(BDD1F04B-858B-11D1-B16A-00C0F0283628),
        helpstring("Displays a collection of ListItems such as files or folders."),
        helpcontext(0x0003357e),
        licensed,
        control
    ]
    coclass ListView {
        [default] interface IListView;
        [default, source] dispinterface ListViewEvents;
    };

    [
        odl,
        uuid(BDD1F04C-858B-11D1-B16A-00C0F0283628),
        helpstring("ListView Item collection"),
        helpcontext(0x000335c3),
        hidden,
        dual,
        nonextensible,
        oleautomation
    ]
    interface IListItems : IDispatch {
        [id(0x00000001), propget, helpstring("Returns the number of objects in a collection."), helpcontext(0x000335c4)]
        HRESULT Count([out, retval] long* plCount);
        [id(0x00000001), propput, helpstring("Returns the number of objects in a collection."), helpcontext(0x000335c4)]
        HRESULT Count([in] long plCount);
        [id(00000000), propget, hidden]
        HRESULT ControlDefault(
            [in] VARIANT* Index,
            [out, retval] IListItem** ppIListItem);
        [id(0x00000002), helpstring("Adds a ListItem object to a ListItems collection only at run time."), helpcontext(0x000335c5)]
        HRESULT Add(
            [in, optional] VARIANT* Index,
            [in, optional] VARIANT* Key,
            [in, optional] VARIANT* Text,
            [in, optional] VARIANT* Icon,
            [in, optional] VARIANT* SmallIcon,
            [out, retval, optional] IListItem** ppIListItem);
        [id(0x00000003), helpstring("Removes all objects in a collection."), helpcontext(0x000335c6)]
        HRESULT Clear();
        [id(0x00000004), propget, helpstring("Returns a specific item of a Collection object either by position or by key."), helpcontext(0x000335c7)]
        HRESULT Item(
            [in] VARIANT* Index,
            [out, retval] IListItem** ppIListItem);
        [id(0x00000005), helpstring("Removes a specific member from a collection."), helpcontext(0x000335c8)]
        HRESULT Remove([in] VARIANT* Index);
        [id(0xfffffffc), hidden]
        HRESULT _NewEnum([out, retval] IUnknown** ppNewEnum);
    };

    [
        uuid(BDD1F04D-858B-11D1-B16A-00C0F0283628),
        helpstring("ListView Item collection"),
        helpcontext(0x000335c3),
        noncreatable
    ]
    coclass ListItems {
        [default] interface IListItems;
    };

    [
        odl,
        uuid(BDD1F04E-858B-11D1-B16A-00C0F0283628),
        helpstring("An item in a ListView control that contains the index of icons associated with it, text, and an array of strings representing subitems that are displayed in Report view."),
        helpcontext(0x000335c9),
        hidden,
        dual,
        nonextensible,
        oleautomation
    ]
    interface IListItem : IDispatch {
        [id(00000000), propget, hidden]
        HRESULT Default([out, retval] BSTR* pbstrText);
        [id(00000000), propput, hidden]
        HRESULT Default([in] BSTR pbstrText);
        [id(0x0000000a), propget, helpstring("Returns/sets the text to be displayed in a control."), helpcontext(0x000335d3)]
        HRESULT Text([out, retval] BSTR* pbstrText);
        [id(0x0000000a), propput, helpstring("Returns/sets the text to be displayed in a control."), helpcontext(0x000335d3)]
        HRESULT Text([in] BSTR pbstrText);
        [id(0x00000001), propget, helpstring("Returns/sets the state of a ListView control Object item."), helpcontext(0x000335ca)]
        HRESULT Ghosted([out, retval] VARIANT_BOOL* pfOn);
        [id(0x00000001), propput, helpstring("Returns/sets the state of a ListView control Object item."), helpcontext(0x000335ca)]
        HRESULT Ghosted([in] VARIANT_BOOL pfOn);
        [id(0x00000002), propget, helpstring("Returns/sets the height of an object."), helpcontext(0x000335cb)]
        HRESULT Height([out, retval] float* pflHeight);
        [id(0x00000002), propput, helpstring("Returns/sets the height of an object."), helpcontext(0x000335cb)]
        HRESULT Height([in] float pflHeight);
        [id(0x00000003), propget, helpstring("Returns/sets the index of an icon in an associated ImageList control."), helpcontext(0x000335cc)]
        HRESULT Icon([out, retval] VARIANT* pnIndex);
        [id(0x00000003), propput, helpstring("Returns/sets the index of an icon in an associated ImageList control."), helpcontext(0x000335cc)]
        HRESULT Icon([in] VARIANT pnIndex);
        [id(0x00000004), propget, helpstring("Returns/sets the index of an object in a collection. Read-only at run time."), helpcontext(0x000335cd)]
        HRESULT Index([out, retval] long* plIndex);
        [id(0x00000004), propput, helpstring("Returns/sets the index of an object in a collection. Read-only at run time."), helpcontext(0x000335cd)]
        HRESULT Index([in] long plIndex);
        [id(0x00000005), propget, helpstring("Returns/sets the unique string of an object in a collection."), helpcontext(0x000335ce)]
        HRESULT Key([out, retval] BSTR* pbstrKey);
        [id(0x00000005), propput, helpstring("Returns/sets the unique string of an object in a collection."), helpcontext(0x000335ce)]
        HRESULT Key([in] BSTR pbstrKey);
        [id(0x00000006), propget, helpstring("Returns/sets the distance between the internal left edge of an object and the left edge of its container."), helpcontext(0x000335cf)]
        HRESULT Left([out, retval] float* pflLeft);
        [id(0x00000006), propput, helpstring("Returns/sets the distance between the internal left edge of an object and the left edge of its container."), helpcontext(0x000335cf)]
        HRESULT Left([in] float pflLeft);
        [id(0x00000007), propget, helpstring("Returns/sets a value which determines if a ListItem or Node object is selected."), helpcontext(0x000335d0)]
        HRESULT Selected([out, retval] VARIANT_BOOL* pfOn);
        [id(0x00000007), propput, helpstring("Returns/sets a value which determines if a ListItem or Node object is selected."), helpcontext(0x000335d0)]
        HRESULT Selected([in] VARIANT_BOOL pfOn);
        [id(0x00000008), propget, helpstring("Returns/sets the index of an small icon in an associated ImageList control."), helpcontext(0x000335d1)]
        HRESULT SmallIcon([out, retval] VARIANT* pnIndex);
        [id(0x00000008), propput, helpstring("Returns/sets the index of an small icon in an associated ImageList control."), helpcontext(0x000335d1)]
        HRESULT SmallIcon([in] VARIANT pnIndex);
        [id(0x00000009), propget, helpstring("Stores any extra data needed for your program."), helpcontext(0x000335d2)]
        HRESULT Tag([out, retval] VARIANT* pvTag);
        [id(0x00000009), propput, helpstring("Stores any extra data needed for your program."), helpcontext(0x000335d2)]
        HRESULT Tag([in] VARIANT pvTag);
        [id(0x0000000b), propget, helpstring("Returns/sets the distance between the internal top edge of an object and the top edge of its container."), helpcontext(0x000335d4)]
        HRESULT Top([out, retval] float* pflTop);
        [id(0x0000000b), propput, helpstring("Returns/sets the distance between the internal top edge of an object and the top edge of its container."), helpcontext(0x000335d4)]
        HRESULT Top([in] float pflTop);
        [id(0x0000000c), propget, helpstring("Returns/sets the width of an object."), helpcontext(0x000335d5)]
        HRESULT Width([out, retval] float* pflWidth);
        [id(0x0000000c), propput, helpstring("Returns/sets the width of an object."), helpcontext(0x000335d5)]
        HRESULT Width([in] float pflWidth);
        [id(0x0000000d), propget, helpstring("Returns/sets an array of strings representing the ListIitem's data."), helpcontext(0x000335d6)]
        HRESULT SubItems(
            [in] short Index,
            [out, retval] BSTR* pbstrItem);
        [id(0x0000000d), propput, helpstring("Returns/sets an array of strings representing the ListIitem's data."), helpcontext(0x000335d6)]
        HRESULT SubItems(
            [in] short Index,
            [in] BSTR pbstrItem);
        [id(0x0000000e), helpstring("Creates a composite image from an icon and a caption for use in drag and drop operations."), helpcontext(0x000335d7)]
        HRESULT CreateDragImage([out, retval] stdole.IPictureDisp** ppImage);
        [id(0x0000000f), helpstring("Ensures a ListItem or Node object is visible, scrolling or expanding the control if necessary."), helpcontext(0x000335d8)]
        HRESULT EnsureVisible([out, retval] VARIANT_BOOL* pfVisible);
        [id(0x00000009), propputref, helpstring("Stores any extra data needed for your program."), helpcontext(0x000335d2)]
        HRESULT Tag([in] VARIANT pvTag);
        [id(0x00000010), propget, helpstring("Returns/sets a collection of ListSubItems belonging to the ListItem."), helpcontext(0x000337d5)]
        HRESULT ListSubItems([out, retval] IListSubItems** ppSubItems);
        [id(0x00000010), propput, helpstring("Returns/sets a collection of ListSubItems belonging to the ListItem."), helpcontext(0x000337d5)]
        HRESULT ListSubItems([in] IListSubItems* ppSubItems);
        [id(0x00000011), propget, helpstring("Returns/sets a value that determines whether a ListSubItem object is checked."), helpcontext(0x000337cc)]
        HRESULT Checked([out, retval] VARIANT_BOOL* pfChecked);
        [id(0x00000011), propput, helpstring("Returns/sets a value that determines whether a ListSubItem object is checked."), helpcontext(0x000337cc)]
        HRESULT Checked([in] VARIANT_BOOL pfChecked);
        [id(0xfffffdff), propget, helpstring("Returns/sets the background color used to display text and graphics in an object."), helpcontext(0x000335b0)]
        HRESULT ForeColor([out, retval] stdole.OLE_COLOR* pcrFore);
        [id(0xfffffdff), propput, helpstring("Returns/sets the background color used to display text and graphics in an object."), helpcontext(0x000335b0)]
        HRESULT ForeColor([in] stdole.OLE_COLOR pcrFore);
        [id(0x00000012), propget, helpstring("Returns/sets the text for the subitem tooltip"), helpcontext(0x000337b0)]
        HRESULT ToolTipText([out, retval] BSTR* pbstrToolTipText);
        [id(0x00000012), propput, helpstring("Returns/sets the text for the subitem tooltip"), helpcontext(0x000337b0)]
        HRESULT ToolTipText([in] BSTR pbstrToolTipText);
        [id(0x00000013), propget, helpstring("Returns/sets a value that determines whether the text for a ListItem object is displayed with a bold font."), helpcontext(0x000337c1)]
        HRESULT Bold([out, retval] VARIANT_BOOL* pfBold);
        [id(0x00000013), propput, helpstring("Returns/sets a value that determines whether the text for a ListItem object is displayed with a bold font."), helpcontext(0x000337c1)]
        HRESULT Bold([in] VARIANT_BOOL pfBold);
    };

    [
        uuid(BDD1F04F-858B-11D1-B16A-00C0F0283628),
        helpstring("An item in a ListView control that contains the index of icons associated with it, text, and an array of strings representing subitems that are displayed in Report view."),
        helpcontext(0x000335c9),
        noncreatable
    ]
    coclass ListItem {
        [default] interface IListItem;
    };

    [
        odl,
        uuid(BDD1F050-858B-11D1-B16A-00C0F0283628),
        helpstring("ListView Column Header collection"),
        helpcontext(0x000335d9),
        hidden,
        dual,
        nonextensible,
        oleautomation
    ]
    interface IColumnHeaders : IDispatch {
        [id(0x00000001), propget, helpstring("Returns the number of objects in a collection."), helpcontext(0x000335da)]
        HRESULT Count([out, retval] long* plCount);
        [id(0x00000001), propput, helpstring("Returns the number of objects in a collection."), helpcontext(0x000335da)]
        HRESULT Count([in] long plCount);
        [id(00000000), propget, hidden]
        HRESULT ControlDefault(
            [in] VARIANT* Index,
            [out, retval] IColumnHeader** ppIColumnHeader);
        [id(0x00000002), hidden, helpstring("Adds a ColumnHeader object to a ColumnHeaders collection at both design time and run time."), helpcontext(0x000335db)]
        HRESULT Add_PreVB98(
            [in, optional] VARIANT* Index,
            [in, optional] VARIANT* Key,
            [in, optional] VARIANT* Text,
            [in, optional] VARIANT* Width,
            [in, optional] VARIANT* Alignment,
            [out, retval, optional] IColumnHeader** ppIColumnHeader);
        [id(0x00000003), helpstring("Removes all objects in a collection."), helpcontext(0x000335dc)]
        HRESULT Clear();
        [id(0x00000004), propget, helpstring("Returns a specific member of a Collection object either by position or by key."), helpcontext(0x000335dd)]
        HRESULT Item(
            [in] VARIANT* Index,
            [out, retval] IColumnHeader** ppIColumnHeader);
        [id(0x00000005), helpstring("Removes a specific member from a collection."), helpcontext(0x000335de)]
        HRESULT Remove([in] VARIANT* Index);
        [id(0xfffffffc)]
        HRESULT _NewEnum([out, retval] IUnknown** ppUnknown);
        [id(0x00000006), helpstring("Adds a ColumnHeader object to a ColumnHeaders collection at both design time and run time."), helpcontext(0x000335db)]
        HRESULT Add(
            [in, optional] VARIANT* Index,
            [in, optional] VARIANT* Key,
            [in, optional] VARIANT* Text,
            [in, optional] VARIANT* Width,
            [in, optional] VARIANT* Alignment,
            [in, optional] VARIANT* Icon,
            [out, retval, optional] IColumnHeader** ppIColumnHeader);
    };

    [
        uuid(0713E8C6-850A-101B-AFC0-4210102A8DA7),
        helpstring("ListView Column Header collection"),
        helpcontext(0x000335d9),
        noncreatable
    ]
    coclass ColumnHeaders {
        [default] interface IColumnHeaders;
    };

    [
        odl,
        uuid(BDD1F051-858B-11D1-B16A-00C0F0283628),
        helpstring("ListView Column Header"),
        helpcontext(0x000335df),
        hidden,
        dual,
        nonextensible,
        oleautomation
    ]
    interface IColumnHeader : IDispatch {
        [id(00000000), propget, hidden]
        HRESULT Default([out, retval] BSTR* pbstrText);
        [id(00000000), propput, hidden]
        HRESULT Default([in] BSTR pbstrText);
        [id(0x00000007), propget, helpstring("Returns/sets the text to be displayed in a control."), helpcontext(0x000335e6)]
        HRESULT Text([out, retval] BSTR* pbstrText);
        [id(0x00000007), propput, helpstring("Returns/sets the text to be displayed in a control."), helpcontext(0x000335e6)]
        HRESULT Text([in] BSTR pbstrText);
        [id(0x00000001), propget, helpstring("Returns/sets a value that determines where an object is displayed on a form."), helpcontext(0x000335e0)]
        HRESULT Alignment([out, retval] ListColumnAlignmentConstants* pnAlignment);
        [id(0x00000001), propput, helpstring("Returns/sets a value that determines where an object is displayed on a form."), helpcontext(0x000335e0)]
        HRESULT Alignment([in] ListColumnAlignmentConstants pnAlignment);
        [id(0x00000002), propget, helpstring("Returns/sets the index of an object in a collection. Read-only at run time."), helpcontext(0x000335e1)]
        HRESULT Index([out, retval] long* plIndex);
        [id(0x00000002), propput, helpstring("Returns/sets the index of an object in a collection. Read-only at run time."), helpcontext(0x000335e1)]
        HRESULT Index([in] long plIndex);
        [id(0x00000003), propget, helpstring("Returns/sets the unique string of an object in a collection."), helpcontext(0x000335e2)]
        HRESULT Key([out, retval] BSTR* pbstrKey);
        [id(0x00000003), propput, helpstring("Returns/sets the unique string of an object in a collection."), helpcontext(0x000335e2)]
        HRESULT Key([in] BSTR pbstrKey);
        [id(0x00000004), propget, helpstring("Returns/sets the distance between the internal left edge of an object and the left edge of its container."), helpcontext(0x000335e3)]
        HRESULT Left([out, retval] float* pflLeft);
        [id(0x00000004), propput, helpstring("Returns/sets the distance between the internal left edge of an object and the left edge of its container."), helpcontext(0x000335e3)]
        HRESULT Left([in] float pflLeft);
        [id(0x00000005), propget, helpstring("Returns the index of the subitem associated with a ColumnHeader object in a ListView control."), helpcontext(0x000335e4)]
        HRESULT SubItemIndex([out, retval] short* psIndex);
        [id(0x00000005), propput, helpstring("Returns the index of the subitem associated with a ColumnHeader object in a ListView control."), helpcontext(0x000335e4)]
        HRESULT SubItemIndex([in] short psIndex);
        [id(0x00000006), propget, helpstring("Stores any extra data needed for your program."), helpcontext(0x000335e5)]
        HRESULT Tag([out, retval] VARIANT* pvTag);
        [id(0x00000006), propput, helpstring("Stores any extra data needed for your program."), helpcontext(0x000335e5)]
        HRESULT Tag([in] VARIANT pvTag);
        [id(0x00000008), propget, helpstring("Returns/sets the width of an object."), helpcontext(0x000335e7)]
        HRESULT Width([out, retval] float* pflWidth);
        [id(0x00000008), propput, helpstring("Returns/sets the width of an object."), helpcontext(0x000335e7)]
        HRESULT Width([in] float pflWidth);
        [id(0x00000006), propputref, helpstring("Stores any extra data needed for your program."), helpcontext(0x000335e5)]
        HRESULT Tag([in] VARIANT pvTag);
        [id(0x00000009), propget, helpstring("Returns/sets the index of an icon in an associated ImageList control."), helpcontext(0x000337b7)]
        HRESULT Icon([out, retval] VARIANT* pnIndex);
        [id(0x00000009), propput, helpstring("Returns/sets the index of an icon in an associated ImageList control."), helpcontext(0x000337b7)]
        HRESULT Icon([in] VARIANT pnIndex);
        [id(0x0000000a), propget, helpstring("Returns current position of column."), helpcontext(0x000337ae)]
        HRESULT Position([out, retval] short* piPosition);
        [id(0x0000000a), propput, helpstring("Returns current position of column."), helpcontext(0x000337ae)]
        HRESULT Position([in] short piPosition);
    };

    [
        uuid(BDD1F052-858B-11D1-B16A-00C0F0283628),
        helpstring("ListView Column Header"),
        helpcontext(0x000335df),
        noncreatable
    ]
    coclass ColumnHeader {
        [default] interface IColumnHeader;
    };

    [
        odl,
        uuid(BDD1F053-858B-11D1-B16A-00C0F0283628),
        helpstring("ListView SubItem object"),
        helpcontext(0x000337b2),
        dual,
        nonextensible,
        oleautomation
    ]
    interface IListSubItems : IDispatch {
        [id(0x00000001), propget, helpstring("Returns the number of SubItems in the collection."), helpcontext(0x000337a9)]
        HRESULT Count([out, retval] long* plCount);
        [id(0x00000001), propput, helpstring("Returns the number of SubItems in the collection."), helpcontext(0x000337a9)]
        HRESULT Count([in] long plCount);
        [id(00000000), propget, hidden]
        HRESULT ControlDefault(
            [in] VARIANT* Index,
            [out, retval] IListSubItem** ppIListSubItem);
        [id(0x00000002), helpstring("Adds a ListSubItem object to a ListSubItems collection only at run time."), helpcontext(0x000337aa)]
        HRESULT Add(
            [in, optional] VARIANT* Index,
            [in, optional] VARIANT* Key,
            [in, optional] VARIANT* Text,
            [in, optional] VARIANT* ReportIcon,
            [in, optional] VARIANT* ToolTipText,
            [out, retval, optional] IListSubItem** ppIListSubItem);
        [id(0x00000003), helpstring("Removes all objects in a collection."), helpcontext(0x000337ab)]
        HRESULT Clear();
        [id(0x00000004), propget, helpstring("Returns a specific item of a Collection object either by position or by key."), helpcontext(0x000337ac)]
        HRESULT Item(
            [in] VARIANT* Index,
            [out, retval] IListSubItem** ppIListSubItem);
        [id(0x00000005), helpstring("Removes a specific member from a collection."), helpcontext(0x000337ad)]
        HRESULT Remove([in] VARIANT* Index);
        [id(0xfffffffc), hidden]
        HRESULT _NewEnum([out, retval] IUnknown** ppNewEnum);
    };

    [
        uuid(BDD1F054-858B-11D1-B16A-00C0F0283628),
        helpstring("ListView SubItem collection"),
        helpcontext(0x000337b1),
        noncreatable
    ]
    coclass ListSubItems {
        [default] interface IListSubItems;
    };

    [
        odl,
        uuid(BDD1F055-858B-11D1-B16A-00C0F0283628),
        helpstring("ListView SubItem object"),
        helpcontext(0x000337b2),
        dual,
        nonextensible,
        oleautomation
    ]
    interface IListSubItem : IDispatch {
        [id(00000000), propget, hidden]
        HRESULT Default([out, retval] BSTR* pbstrText);
        [id(00000000), propput, hidden]
        HRESULT Default([in] BSTR pbstrText);
        [id(0x00000001), propget, helpstring("Returns/sets the text to display text for a ListSubItem object."), helpcontext(0x000337b3)]
        HRESULT Text([out, retval] BSTR* pbstrText);
        [id(0x00000001), propput, helpstring("Returns/sets the text to display text for a ListSubItem object."), helpcontext(0x000337b3)]
        HRESULT Text([in] BSTR pbstrText);
        [id(0xfffffdff), propget, helpstring("Returns/sets the foreground color used to display text for a ListSubItem object."), helpcontext(0x000337b4)]
        HRESULT ForeColor([out, retval] stdole.OLE_COLOR* pcrFore);
        [id(0xfffffdff), propput, helpstring("Returns/sets the foreground color used to display text for a ListSubItem object."), helpcontext(0x000337b4)]
        HRESULT ForeColor([in] stdole.OLE_COLOR pcrFore);
        [id(0x00000002), propget, helpstring("Returns/sets a value that determines whether the text for a ListSubItem object is displayed with a bold font."), helpcontext(0x000337b5)]
        HRESULT Bold([out, retval] VARIANT_BOOL* pfBold);
        [id(0x00000002), propput, helpstring("Returns/sets a value that determines whether the text for a ListSubItem object is displayed with a bold font."), helpcontext(0x000337b5)]
        HRESULT Bold([in] VARIANT_BOOL pfBold);
        [id(0x00000004), propget, helpstring("Returns/sets the subitem's report view icon"), helpcontext(0x000337af)]
        HRESULT ReportIcon([out, retval] VARIANT* pnIndex);
        [id(0x00000004), propput, helpstring("Returns/sets the subitem's report view icon"), helpcontext(0x000337af)]
        HRESULT ReportIcon([in] VARIANT pnIndex);
        [id(0x00000005), propget, helpstring("Returns/sets the text for the subitem tooltip"), helpcontext(0x000337b0)]
        HRESULT ToolTipText([out, retval] BSTR* pbstrToolTipText);
        [id(0x00000005), propput, helpstring("Returns/sets the text for the subitem tooltip"), helpcontext(0x000337b0)]
        HRESULT ToolTipText([in] BSTR pbstrToolTipText);
        [id(0x00000006), propget, helpstring("Returns/sets the index of an object in a collection. Read-only at run time."), helpcontext(0x000337d0)]
        HRESULT Index([out, retval] long* plIndex);
        [id(0x00000006), propput, helpstring("Returns/sets the index of an object in a collection. Read-only at run time."), helpcontext(0x000337d0)]
        HRESULT Index([in] long plIndex);
        [id(0x00000007), propget, helpstring("Returns/sets the unique string of an object in a collection."), helpcontext(0x000337d1)]
        HRESULT Key([out, retval] BSTR* pbstrKey);
        [id(0x00000007), propput, helpstring("Returns/sets the unique string of an object in a collection."), helpcontext(0x000337d1)]
        HRESULT Key([in] BSTR pbstrKey);
        [id(0x00000008), propget, helpstring("Stores any extra data needed for your program."), helpcontext(0x000337d2)]
        HRESULT Tag([out, retval] VARIANT* pvTag);
        [id(0x00000008), propput, helpstring("Stores any extra data needed for your program."), helpcontext(0x000337d2)]
        HRESULT Tag([in] VARIANT pvTag);
        [id(0x00000008), propputref, helpstring("Stores any extra data needed for your program."), helpcontext(0x000337d2)]
        HRESULT Tag([in] VARIANT pvTag);
    };

    [
        uuid(BDD1F056-858B-11D1-B16A-00C0F0283628),
        helpstring("ListView SubItem object"),
        helpcontext(0x000337b2),
        noncreatable
    ]
    coclass ListSubItem {
        [default] interface IListSubItem;
    };

    typedef [uuid(2C247F20-8591-11D1-B16A-00C0F0283628), helpstring("ImageList Draw constants"), helpcontext(0x0003346c)]
    enum {
        imlNormal = 0,
        imlTransparent = 1,
        imlSelected = 2,
        imlFocus = 3
    } ImageDrawConstants;

    [
        odl,
        uuid(2C247F21-8591-11D1-B16A-00C0F0283628),
        helpstring("Contains a collection of ListImage objects, each of which can be referred to by its index or key"),
        helpcontext(0x0003346b),
        hidden,
        dual,
        nonextensible,
        oleautomation
    ]
    interface IImageList : IDispatch {
        [id(0x00000001), propget, helpstring("Returns/sets the height of a ListImage object."), helpcontext(0x00033471)]
        HRESULT ImageHeight([out, retval] short* psImageHeight);
        [id(0x00000001), propput, helpstring("Returns/sets the height of a ListImage object."), helpcontext(0x00033471)]
        HRESULT ImageHeight([in] short psImageHeight);
        [id(0x00000002), propget, helpstring("Returns/sets the width of ListImage objects in an ImageList control."), helpcontext(0x00033472)]
        HRESULT ImageWidth([out, retval] short* psImageWidth);
        [id(0x00000002), propput, helpstring("Returns/sets the width of ListImage objects in an ImageList control."), helpcontext(0x00033472)]
        HRESULT ImageWidth([in] short psImageWidth);
        [id(0x00000003), propget, helpstring("Returns/sets a value which determines the color to be transparent in ImageList graphical operations."), helpcontext(0x00033473)]
        HRESULT MaskColor([out, retval] stdole.OLE_COLOR* pclrMaskColor);
        [id(0x00000003), propput, helpstring("Returns/sets a value which determines the color to be transparent in ImageList graphical operations."), helpcontext(0x00033473)]
        HRESULT MaskColor([in] stdole.OLE_COLOR pclrMaskColor);
        [id(0x00000007), propget, helpstring("Returns/sets a value which determines if the ImageList control will use the MaskColor property."), helpcontext(0x000336a8)]
        HRESULT UseMaskColor([out, retval] VARIANT_BOOL* pbState);
        [id(0x00000007), propput, helpstring("Returns/sets a value which determines if the ImageList control will use the MaskColor property."), helpcontext(0x000336a8)]
        HRESULT UseMaskColor([in] VARIANT_BOOL pbState);
        [id(0x00000004), propget, helpstring("Returns a reference to a collection of ListImage objects in an ImageList control."), helpcontext(0x00033474)]
        HRESULT ListImages([out, retval] IImages** ppListImages);
        [id(0x00000004), propputref, helpstring("Returns a reference to a collection of ListImage objects in an ImageList control."), helpcontext(0x00033474)]
        HRESULT ListImages([in] IImages* ppListImages);
        [id(0x00000005), propget, helpstring("Returns a handle to an ImageList control."), helpcontext(0x00033475)]
        HRESULT hImageList([out, retval] stdole.OLE_HANDLE* phImageList);
        [id(0x00000005), propput, helpstring("Returns a handle to an ImageList control."), helpcontext(0x00033475)]
        HRESULT hImageList([in] stdole.OLE_HANDLE phImageList);
        [id(0xfffffe0b), propget, helpstring("Returns/sets the background color used to display text and graphics in an object."), helpcontext(0x00033476)]
        HRESULT BackColor([out, retval] stdole.OLE_COLOR* pclrBackColor);
        [id(0xfffffe0b), propput, helpstring("Returns/sets the background color used to display text and graphics in an object."), helpcontext(0x00033476)]
        HRESULT BackColor([in] stdole.OLE_COLOR pclrBackColor);
        [id(0x00000006), helpstring("Creates a composite third image out of two ListImage objects and returns a reference to the new object."), helpcontext(0x00033477)]
        HRESULT Overlay(
            [in] VARIANT* Key1,
            [in] VARIANT* Key2,
            [out, retval] stdole.IPictureDisp** ppPictureDisp);
        [id(0xfffffdd8), hidden]
        HRESULT AboutBox();
    };

    [
        uuid(2C247F22-8591-11D1-B16A-00C0F0283628),
        helpstring("Event interface for Image List Control"),
        helpcontext(0x000336ae)
    ]
    dispinterface ImageListEvents {
    properties:
    methods:
    };

    [
        uuid(2C247F23-8591-11D1-B16A-00C0F0283628),
        helpstring("Contains a collection of ListImage objects, each of which can be referred to by its index or key"),
        helpcontext(0x0003346b),
        licensed,
        control
    ]
    coclass ImageList {
        [default] interface IImageList;
        [default, source] dispinterface ImageListEvents;
    };

    [
        odl,
        uuid(2C247F24-8591-11D1-B16A-00C0F0283628),
        helpstring("A bitmap or icon of any size that can be used in other controls."),
        helpcontext(0x00033478),
        hidden,
        dual,
        nonextensible,
        oleautomation
    ]
    interface IImages : IDispatch {
        [id(0x00000001), propget, helpstring("Returns the number of objects in a collection."), helpcontext(0x00033479)]
        HRESULT Count([out, retval] short* psCount);
        [id(0x00000001), propput, helpstring("Returns the number of objects in a collection."), helpcontext(0x00033479)]
        HRESULT Count([in] short psCount);
        [id(00000000), propget, hidden]
        HRESULT ControlDefault(
            [in] VARIANT* Index,
            [out, retval] IImage** ppListImage);
        [id(00000000), propputref, hidden]
        HRESULT ControlDefault(
            [in] VARIANT* Index,
            [in] IImage* ppListImage);
        [id(0x00000002), helpstring("Adds a ListImage object to a ListImages collection and returns a reference to the created object."), helpcontext(0x0003347a)]
        HRESULT Add(
            [in, optional] VARIANT* Index,
            [in, optional] VARIANT* Key,
            [in, optional] VARIANT* Picture,
            [out, retval, optional] IImage** ppListImage);
        [id(0x00000003), helpstring("Removes all objects in a collection."), helpcontext(0x0003347b)]
        HRESULT Clear();
        [id(0x00000004), propget, helpstring("Returns a specific member of a Collection object either by position or by key."), helpcontext(0x0003347c)]
        HRESULT Item(
            [in] VARIANT* Index,
            [out, retval] IImage** Item);
        [id(0x00000004), propputref, helpstring("Returns a specific member of a Collection object either by position or by key."), helpcontext(0x0003347c)]
        HRESULT Item(
            [in] VARIANT* Index,
            [in] IImage* Item);
        [id(0x00000005), helpstring("Removes a specific member from a collection."), helpcontext(0x0003347d)]
        HRESULT Remove([in] VARIANT* Index);
        [id(0xfffffffc), hidden]
        HRESULT _NewEnum([out, retval] IDispatch** ppNewEnum);
    };

    [
        uuid(2C247F25-8591-11D1-B16A-00C0F0283628),
        helpstring("A bitmap or icon of any size that can be used in other controls."),
        helpcontext(0x00033478),
        noncreatable
    ]
    coclass ListImages {
        [default] interface IImages;
    };

    [
        odl,
        uuid(2C247F26-8591-11D1-B16A-00C0F0283628),
        helpstring("A bitmap or icon of any size that can be used in other controls."),
        helpcontext(0x0003347e),
        hidden,
        dual,
        nonextensible,
        oleautomation
    ]
    interface IImage : IDispatch {
        [id(0x00000001), propget, helpstring("Returns/sets the index of an object in a collection. Read-only at run time."), helpcontext(0x0003347f)]
        HRESULT Index([out, retval] short* psIndex);
        [id(0x00000001), propput, helpstring("Returns/sets the index of an object in a collection. Read-only at run time."), helpcontext(0x0003347f)]
        HRESULT Index([in] short psIndex);
        [id(0x00000002), propget, helpstring("Returns/sets the unique string of an object in a collection."), helpcontext(0x00033480)]
        HRESULT Key([out, retval] BSTR* pbstrKey);
        [id(0x00000002), propput, helpstring("Returns/sets the unique string of an object in a collection."), helpcontext(0x00033480)]
        HRESULT Key([in] BSTR pbstrKey);
        [id(0x00000006), propget, helpstring("Stores any extra data needed for your program."), helpcontext(0x00033481)]
        HRESULT Tag([out, retval] VARIANT* pvTag);
        [id(0x00000006), propput, helpstring("Stores any extra data needed for your program."), helpcontext(0x00033481)]
        HRESULT Tag([in] VARIANT pvTag);
        [id(0x00000003), propget, helpstring("Returns/sets the image Picture"), helpcontext(0x00033482)]
        HRESULT Picture([out, retval] stdole.IPictureDisp** ppPictureDisp);
        [id(0x00000003), propputref, helpstring("Returns/sets the image Picture"), helpcontext(0x00033482)]
        HRESULT Picture([in] stdole.IPictureDisp* ppPictureDisp);
        [id(0x00000004), helpstring("Draws the image to a given device context (DC) at a specified location using a specified style"), helpcontext(0x00033483)]
        HRESULT Draw(
            [in] stdole.OLE_HANDLE hDC,
            [in, optional] VARIANT* x,
            [in, optional] VARIANT* y,
            [in, optional] VARIANT* Style);
        [id(0x00000005), helpstring("Creates an icon from a ListImage object in an ImageList control"), helpcontext(0x00033484)]
        HRESULT ExtractIcon([out, retval] stdole.IPictureDisp** ppIconDisp);
        [id(0x00000006), propputref, helpstring("Stores any extra data needed for your program."), helpcontext(0x00033481)]
        HRESULT Tag([in] VARIANT pvTag);
    };

    [
        uuid(2C247F27-8591-11D1-B16A-00C0F0283628),
        helpstring("A bitmap or icon of any size that can be used in other controls."),
        helpcontext(0x0003347e),
        noncreatable
    ]
    coclass ListImage {
        [default] interface IImage;
    };

    typedef [uuid(F08DF950-8592-11D1-B16A-00C0F0283628), helpstring("TickStyle constants"), helpcontext(0x00033506)]
    enum {
        sldBottomRight = 0,
        sldTopLeft = 1,
        sldBoth = 2,
        sldNoTicks = 3
    } TickStyleConstants;

    typedef [uuid(F08DF951-8592-11D1-B16A-00C0F0283628), helpstring("TextPosition constants"), helpcontext(0x0003376f)]
    enum {
        sldAboveLeft = 0,
        sldBelowRight = 1
    } TextPositionConstants;

    [
        odl,
        uuid(F08DF952-8592-11D1-B16A-00C0F0283628),
        helpstring("A calibrated control with a slider for setting or selecting values."),
        helpcontext(0x00033502),
        hidden,
        dual,
        nonextensible,
        oleautomation
    ]
    interface ISlider : IDispatch {
        [id(00000000), propget, hidden]
        HRESULT _Value([out, retval] long* plValue);
        [id(00000000), propput, hidden]
        HRESULT _Value([in] long plValue);
        [id(0x00000001), propget, helpstring("Returns/sets the increment value when the PageDown or PageUp key is pressed."), helpcontext(0x0003350b)]
        HRESULT LargeChange([out, retval] long* plLargeChange);
        [id(0x00000001), propput, helpstring("Returns/sets the increment value when the PageDown or PageUp key is pressed."), helpcontext(0x0003350b)]
        HRESULT LargeChange([in] long plLargeChange);
        [id(0x00000002), propget, helpstring("Returns/sets the increment value when the left or right arrow key is pressed."), helpcontext(0x0003350c)]
        HRESULT SmallChange([out, retval] long* plSmallChange);
        [id(0x00000002), propput, helpstring("Returns/sets the increment value when the left or right arrow key is pressed."), helpcontext(0x0003350c)]
        HRESULT SmallChange([in] long plSmallChange);
        [id(0x00000003), propget, helpstring("Returns/sets the maximum value of a control."), helpcontext(0x0003350d)]
        HRESULT Max([out, retval] long* plMax);
        [id(0x00000003), propput, helpstring("Returns/sets the maximum value of a control."), helpcontext(0x0003350d)]
        HRESULT Max([in] long plMax);
        [id(0x00000004), propget, helpstring("Returns/sets the minimum value of a control."), helpcontext(0x0003350e)]
        HRESULT Min([out, retval] long* plMin);
        [id(0x00000004), propput, helpstring("Returns/sets the minimum value of a control."), helpcontext(0x0003350e)]
        HRESULT Min([in] long plMin);
        [id(0x00000005), propget, helpstring("Returns/sets the orientation of a Slider control, horizontal or vertical."), helpcontext(0x0003350f)]
        HRESULT Orientation([out, retval] OrientationConstants* pOrientation);
        [id(0x00000005), propput, helpstring("Returns/sets the orientation of a Slider control, horizontal or vertical."), helpcontext(0x0003350f)]
        HRESULT Orientation([in] OrientationConstants pOrientation);
        [id(0x00000006), propget, helpstring("Returns/sets whether or not a Slider control can have a select range."), helpcontext(0x00033510)]
        HRESULT SelectRange([out, retval] VARIANT_BOOL* pbSelectRange);
        [id(0x00000006), propput, helpstring("Returns/sets whether or not a Slider control can have a select range."), helpcontext(0x00033510)]
        HRESULT SelectRange([in] VARIANT_BOOL pbSelectRange);
        [id(0x00000007), propget, helpstring("Returns/sets the value where a selection starts."), helpcontext(0x00033511)]
        HRESULT SelStart([out, retval] long* plSelStart);
        [id(0x00000007), propput, helpstring("Returns/sets the value where a selection starts."), helpcontext(0x00033511)]
        HRESULT SelStart([in] long plSelStart);
        [id(0x00000008), propget, helpstring("Returns/sets the length of a selection."), helpcontext(0x00033512)]
        HRESULT SelLength([out, retval] long* plSelLength);
        [id(0x00000008), propput, helpstring("Returns/sets the length of a selection."), helpcontext(0x00033512)]
        HRESULT SelLength([in] long plSelLength);
        [id(0x00000009), propget, helpstring("Returns/sets where ticks appear on a Slider control."), helpcontext(0x00033513)]
        HRESULT TickStyle([out, retval] TickStyleConstants* pTickStyle);
        [id(0x00000009), propput, helpstring("Returns/sets where ticks appear on a Slider control."), helpcontext(0x00033513)]
        HRESULT TickStyle([in] TickStyleConstants pTickStyle);
        [id(0x0000000a), propget, helpstring("Returns/sets the ratio of ticks on a Slider control; 1tick every n increments."), helpcontext(0x00033514)]
        HRESULT TickFrequency([out, retval] long* plTickFrequency);
        [id(0x0000000a), propput, helpstring("Returns/sets the ratio of ticks on a Slider control; 1tick every n increments."), helpcontext(0x00033514)]
        HRESULT TickFrequency([in] long plTickFrequency);
        [id(0x0000000b), propget, helpstring("Returns/sets the value of an object."), helpcontext(0x00033515)]
        HRESULT Value([out, retval] long* plValue);
        [id(0x0000000b), propput, helpstring("Returns/sets the value of an object."), helpcontext(0x00033515)]
        HRESULT Value([in] long plValue);
        [id(0x0000000c), propget, helpstring("Sets a custom mouse icon."), helpcontext(0x00033516)]
        HRESULT MouseIcon([out, retval] stdole.IPictureDisp** ppMouseIcon);
        [id(0x0000000c), propput, helpstring("Sets a custom mouse icon."), helpcontext(0x00033516)]
        HRESULT MouseIcon([in] stdole.IPictureDisp* ppMouseIcon);
        [id(0x0000000c), propputref, helpstring("Sets a custom mouse icon."), helpcontext(0x00033516)]
        HRESULT MouseIcon([in] stdole.IPictureDisp* ppMouseIcon);
        [id(0x0000000d), propget, helpstring("Returns/sets the type of mouse pointer displayed when over part of an object."), helpcontext(0x00033517)]
        HRESULT MousePointer([out, retval] MousePointerConstants* psMousePointer);
        [id(0x0000000d), propput, helpstring("Returns/sets the type of mouse pointer displayed when over part of an object."), helpcontext(0x00033517)]
        HRESULT MousePointer([in] MousePointerConstants psMousePointer);
        [id(0xfffffdfe), propget, bindable, requestedit, helpstring("Returns/sets a value that determines whether a form or control can respond to user-generated events."), helpcontext(0x00033518)]
        HRESULT Enabled([out, retval] VARIANT_BOOL* pbEnabled);
        [id(0xfffffdfe), propput, bindable, requestedit, helpstring("Returns/sets a value that determines whether a form or control can respond to user-generated events."), helpcontext(0x00033518)]
        HRESULT Enabled([in] VARIANT_BOOL pbEnabled);
        [id(0xfffffdfd), propget, helpstring("Returns a handle to a form or control."), helpcontext(0x00033519)]
        HRESULT hWnd([out, retval] stdole.OLE_HANDLE* phWnd);
        [id(0xfffffdfd), propput, helpstring("Returns a handle to a form or control."), helpcontext(0x00033519)]
        HRESULT hWnd([in] stdole.OLE_HANDLE phWnd);
        [id(0xfffffe08), propget, helpstring("Returns/sets the border style for an object."), helpcontext(0x0003351a)]
        HRESULT BorderStyle([out, retval] BorderStyleConstants* psBorderStyle);
        [id(0xfffffe08), propput, helpstring("Returns/sets the border style for an object."), helpcontext(0x0003351a)]
        HRESULT BorderStyle([in] BorderStyleConstants psBorderStyle);
        [id(0x0000060f), propget, helpstring("Returns/Sets whether this control can act as an OLE drop target."), helpcontext(0x00033692)]
        HRESULT OLEDropMode([out, retval] OLEDropConstants* psOLEDropMode);
        [id(0x0000060f), propput, helpstring("Returns/Sets whether this control can act as an OLE drop target."), helpcontext(0x00033692)]
        HRESULT OLEDropMode([in] OLEDropConstants psOLEDropMode);
        [id(0xfffffdda), helpstring("Forces a complete repaint of a form or control."), helpcontext(0x0003351b)]
        void Refresh();
        [id(0x0000000e), helpstring("Sets the SelLength to 0."), helpcontext(0x0003351c)]
        void ClearSel();
        [id(0xfffffdd9), hidden, helpstring("Hidden method that can be used to invoke the Click event"), helpcontext(0x0003351d)]
        void DoClick();
        [id(0x0000000f), propget, helpstring("Returns the number of visible ticks on a Slider control."), helpcontext(0x0003351e)]
        HRESULT GetNumTicks([out, retval] long* plNumTicks);
        [id(0x00000610), helpstring("Starts an OLE drag/drop event with the given control as the source."), helpcontext(0x00033690)]
        HRESULT OLEDrag();
        [id(0xfffffdd8), hidden]
        void AboutBox();
        [id(0x00000010), propget, helpstring("Returns/sets the string displayed in the ToolTip as the slider's position changes."), helpcontext(0x00033772)]
        HRESULT Text([out, retval] BSTR* pbstrText);
        [id(0x00000010), propput, helpstring("Returns/sets the string displayed in the ToolTip as the slider's position changes."), helpcontext(0x00033772)]
        HRESULT Text([in] BSTR pbstrText);
        [id(0x00000011), propget, helpstring("Returns/sets a value that determines where the tooltip displaying the Slider's changing position is displayed."), helpcontext(0x00033773)]
        HRESULT TextPosition([out, retval] TextPositionConstants* penumTextPosition);
        [id(0x00000011), propput, helpstring("Returns/sets a value that determines where the tooltip displaying the Slider's changing position is displayed."), helpcontext(0x00033773)]
        HRESULT TextPosition([in] TextPositionConstants penumTextPosition);
    };

    [
        uuid(F08DF953-8592-11D1-B16A-00C0F0283628),
        helpstring("Event interface for Slider Control"),
        helpcontext(0x000336b1)
    ]
    dispinterface ISliderEvents {
    properties:
    methods:
        [id(0xfffffda8), helpstring("Occurs when the user presses and then releases a mouse button over an object."), helpcontext(0x0003351f)]
        void Click();
        [id(0xfffffda6), helpstring("Occurs when the user presses a key while an object has the focus."), helpcontext(0x00033520)]
        void KeyDown(
            short* KeyCode,
            short Shift);
        [id(0xfffffda5), helpstring("Occurs when the user presses and releases an ANSI key."), helpcontext(0x00033521)]
        void KeyPress(short* KeyAscii);
        [id(0xfffffda4), helpstring("Occurs when the user releases a key while an object has the focus."), helpcontext(0x00033522)]
        void KeyUp(
            short* KeyCode,
            short Shift);
        [id(0xfffffda3), helpstring("Occurs when the user presses the mouse button while an object has the focus."), helpcontext(0x00033523)]
        void MouseDown(
            short Button,
            short Shift,
            stdole.OLE_XPOS_PIXELS x,
            stdole.OLE_YPOS_PIXELS y);
        [id(0xfffffda2), helpstring("Occurs when the user moves the mouse."), helpcontext(0x00033524)]
        void MouseMove(
            short Button,
            short Shift,
            stdole.OLE_XPOS_PIXELS x,
            stdole.OLE_YPOS_PIXELS y);
        [id(0xfffffda1), helpstring("Occurs when the user releases the mouse button while an object has the focus."), helpcontext(0x00033525)]
        void MouseUp(
            short Button,
            short Shift,
            stdole.OLE_XPOS_PIXELS x,
            stdole.OLE_YPOS_PIXELS y);
        [id(0x00000001), helpstring("Slider scroll event"), helpcontext(0x00033526)]
        void Scroll();
        [id(0x00000002), helpstring("Indicates that the contents of a control have changed."), helpcontext(0x00033527)]
        void Change();
        [id(0x0000060e), helpstring("OLEStartDrag event"), helpcontext(0x000336cf)]
        void OLEStartDrag(
            [in, out] DataObject** Data,
            [in, out] long* AllowedEffects);
        [id(0x0000060f), helpstring("OLEGiveFeedback event"), helpcontext(0x000336d0)]
        void OLEGiveFeedback(
            [in, out] long* Effect,
            [in, out] VARIANT_BOOL* DefaultCursors);
        [id(0x00000610), helpstring("OLESetData event"), helpcontext(0x000336d1)]
        void OLESetData(
            [in, out] DataObject** Data,
            [in, out] short* DataFormat);
        [id(0x00000611), helpstring("OLECompleteDrag event"), helpcontext(0x000336d2)]
        void OLECompleteDrag([in, out] long* Effect);
        [id(0x00000612), helpstring("OLEDragOver event"), helpcontext(0x000336d3)]
        void OLEDragOver(
            [in, out] DataObject** Data,
            [in, out] long* Effect,
            [in, out] short* Button,
            [in, out] short* Shift,
            [in, out] float* x,
            [in, out] float* y,
            [in, out] short* State);
        [id(0x00000613), helpstring("OLEDragDrop event"), helpcontext(0x000336d4)]
        void OLEDragDrop(
            [in, out] DataObject** Data,
            [in, out] long* Effect,
            [in, out] short* Button,
            [in, out] short* Shift,
            [in, out] float* x,
            [in, out] float* y);
    };

    [
        uuid(F08DF954-8592-11D1-B16A-00C0F0283628),
        helpstring("A calibrated control with a slider for setting or selecting values."),
        helpcontext(0x00033502),
        licensed,
        control
    ]
    coclass Slider {
        [default] interface ISlider;
        [default, source] dispinterface ISliderEvents;
    };

    [
        odl,
        uuid(C8A3DC00-8593-11D1-B16A-00C0F0283628),
        helpstring("A collection whose elements represent each contained control in a parent control."),
        helpcontext(0x00033468),
        hidden,
        dual,
        nonextensible,
        oleautomation
    ]
    interface IControls : IDispatch {
        [id(0x00000001), propget, helpstring("Returns the number of members in a collection"), helpcontext(0x00033469)]
        HRESULT Count([out, retval] long* plCount);
        [id(00000000), propget, helpstring("Returns a specific member of a Collection object either by position or by key"), helpcontext(0x0003346a)]
        HRESULT Item(
            [in] long Index,
            [out, retval] IDispatch** ppDisp);
        [id(0xfffffffc), hidden]
        HRESULT _NewEnum([out, retval] IUnknown** ppUnk);
    };

    [
        uuid(C8A3DC01-8593-11D1-B16A-00C0F0283628),
        helpstring("Controls collection"),
        helpcontext(0x000336ad),
        noncreatable
    ]
    coclass Controls {
        [default] interface IControls;
    };

    [
        odl,
        uuid(DD9DA660-8594-11D1-B16A-00C0F0283628),
        helpstring("An object that represents an entry in the listbox portion of the combobox control."),
        helpcontext(0x00033738),
        hidden,
        dual,
        nonextensible,
        oleautomation
    ]
    interface IComboItem : IDispatch {
        [id(00000000), propget, hidden]
        HRESULT _ObjectDefault([out, retval] BSTR* pbstrText);
        [id(00000000), propput, hidden]
        HRESULT _ObjectDefault([in] BSTR pbstrText);
        [id(0x00000002), propget, helpstring("Index into ImageList control where the normal image for this item can be found."), helpcontext(0x00033739)]
        HRESULT Image([out, retval] VARIANT* pvImage);
        [id(0x00000002), propput, helpstring("Index into ImageList control where the normal image for this item can be found."), helpcontext(0x00033739)]
        HRESULT Image([in] VARIANT pvImage);
        [id(0x00000005), propget, helpstring("Number of spaces to indent the text for the item.  Each indent is equal to 10 pixels."), helpcontext(0x0003373a)]
        HRESULT Indentation([out, retval] short* psIndent);
        [id(0x00000005), propput, helpstring("Number of spaces to indent the text for the item.  Each indent is equal to 10 pixels."), helpcontext(0x0003373a)]
        HRESULT Indentation([in] short psIndent);
        [id(0x00000006), propget, helpstring("Returns/sets the index of an object in a collection. Read-only at run time."), helpcontext(0x0003373b)]
        HRESULT Index([out, retval] long* plIndex);
        [id(0x00000006), propput, helpstring("Returns/sets the index of an object in a collection. Read-only at run time."), helpcontext(0x0003373b)]
        HRESULT Index([in] long plIndex);
        [id(0x00000008), propget, helpstring("Returns/sets the unique string of an object in a collection."), helpcontext(0x0003373c)]
        HRESULT Key([out, retval] BSTR* pbstrKey);
        [id(0x00000008), propput, helpstring("Returns/sets the unique string of an object in a collection."), helpcontext(0x0003373c)]
        HRESULT Key([in] BSTR pbstrKey);
        [id(0x0000000d), propget, helpstring("Returns/sets a value which determines if a ComboItem is selected."), helpcontext(0x0003373e)]
        HRESULT Selected([out, retval] VARIANT_BOOL* pbSelected);
        [id(0x0000000d), propput, helpstring("Returns/sets a value which determines if a ComboItem is selected."), helpcontext(0x0003373e)]
        HRESULT Selected([in] VARIANT_BOOL pbSelected);
        [id(0x0000000f), propget, helpstring("Index into ImageList control where the selected image for this item can be found."), helpcontext(0x0003373f)]
        HRESULT SelImage([out, retval] VARIANT* pvImage);
        [id(0x0000000f), propput, helpstring("Index into ImageList control where the selected image for this item can be found."), helpcontext(0x0003373f)]
        HRESULT SelImage([in] VARIANT pvImage);
        [id(0x00000015), propget, helpstring("Returns/sets a specific number for each item in an ImageCombo."), helpcontext(0x00033740)]
        HRESULT Tag([out, retval] VARIANT* pvTag);
        [id(0x00000015), propput, helpstring("Returns/sets a specific number for each item in an ImageCombo."), helpcontext(0x00033740)]
        HRESULT Tag([in] VARIANT pvTag);
        [id(0x00000015), propputref, helpstring("Returns/sets a specific number for each item in an ImageCombo."), helpcontext(0x00033740)]
        HRESULT Tag([in] VARIANT pvTag);
        [id(0x00000017), propget, helpstring("Text label for this item."), helpcontext(0x00033741)]
        HRESULT Text([out, retval] BSTR* pbstrText);
        [id(0x00000017), propput, helpstring("Text label for this item."), helpcontext(0x00033741)]
        HRESULT Text([in] BSTR pbstrText);
    };

    [
        uuid(DD9DA661-8594-11D1-B16A-00C0F0283628),
        helpstring("An object that represents an entry in the listbox portion of the combobox control."),
        helpcontext(0x00033738),
        noncreatable
    ]
    coclass ComboItem {
        [default] interface IComboItem;
    };

    [
        odl,
        uuid(DD9DA662-8594-11D1-B16A-00C0F0283628),
        helpstring("The ComboItems Collection."),
        helpcontext(0x00033742),
        hidden,
        dual,
        nonextensible,
        oleautomation
    ]
    interface IComboItems : IDispatch {
        [id(00000000), propget, hidden]
        HRESULT _CollectionDefault(
            [in] VARIANT* Index,
            [out, retval] IComboItem** ppComboItem);
        [id(00000000), propput, hidden]
        HRESULT _CollectionDefault(
            [in] VARIANT* Index,
            [in] IComboItem* ppComboItem);
        [id(0x0000001b), propget, helpstring("Returns the number of members currently in the collection."), helpcontext(0x00033743)]
        HRESULT Count([out, retval] long* plCount);
        [id(0x0000001b), propput, helpstring("Returns the number of members currently in the collection."), helpcontext(0x00033743)]
        HRESULT Count([in] long plCount);
        [id(0x0000001c), propget, helpstring("Returns a specific member of a Collection object either by position or by key."), helpcontext(0x00033746)]
        HRESULT Item(
            [in] VARIANT* Index,
            [out, retval] IComboItem** ppComboItem);
        [id(0x0000001c), propput, helpstring("Returns a specific member of a Collection object either by position or by key."), helpcontext(0x00033746)]
        HRESULT Item(
            [in] VARIANT* Index,
            [in] IComboItem* ppComboItem);
        [id(0x00000019), helpstring("Adds an object to a collection and returns a reference to the created object."), helpcontext(0x00033744)]
        HRESULT Add(
            [in, optional] VARIANT* Index,
            [in, optional] VARIANT* Key,
            [in, optional] VARIANT* Text,
            [in, optional] VARIANT* Image,
            [in, optional] VARIANT* SelImage,
            [in, optional] VARIANT* Indentation,
            [out, retval, optional] IComboItem** ppComboItem);
        [id(0x0000001a), helpstring("Removes all objects in a collection."), helpcontext(0x00033745)]
        HRESULT Clear();
        [id(0x0000001d), helpstring("Removes the item at the given index from the collection."), helpcontext(0x00033747)]
        HRESULT Remove([in] VARIANT* Index);
        [id(0xfffffffc), hidden]
        HRESULT _NewEnum([out, retval] IDispatch** ppNewEnum);
    };

    [
        uuid(DD9DA663-8594-11D1-B16A-00C0F0283628),
        helpstring("The ComboItems Collection."),
        helpcontext(0x00033742),
        noncreatable
    ]
    coclass ComboItems {
        [default] interface IComboItems;
    };

    typedef [uuid(DD9DA667-8594-11D1-B16A-00C0F0283628), helpstring("Constants for the Style property of a ComboBox control."), helpcontext(0x00033734), restricted]
    enum {
        ImgCboDropdownCombo = 0,
        ImgCboSimpleCombo = 1,
        ImgCboDropdownList = 2
    } ImageComboStyleConstants;

    [
        odl,
        uuid(DD9DA664-8594-11D1-B16A-00C0F0283628),
        helpstring("Microsoft ImageComboBox Control"),
        helpcontext(0x00033732),
        hidden,
        dual,
        nonextensible,
        oleautomation
    ]
    interface IImageCombo : IDispatch {
        [id(0xfffffdfb), propget, bindable, requestedit, displaybind, defaultbind, helpstring("Returns/sets the text contained in an object."), helpcontext(0x0003375a)]
        HRESULT Text([out, retval] BSTR* pbstrText);
        [id(0xfffffdfb), propput, bindable, requestedit, displaybind, defaultbind, helpstring("Returns/sets the text contained in an object."), helpcontext(0x0003375a)]
        HRESULT Text([in] BSTR pbstrText);
        [id(0xfffffe0b), propget, helpstring("Returns/sets the background color of an object."), helpcontext(0x00033749)]
        HRESULT BackColor([out, retval] stdole.OLE_COLOR* pocBackColor);
        [id(0xfffffe0b), propput, helpstring("Returns/sets the background color of an object."), helpcontext(0x00033749)]
        HRESULT BackColor([in] stdole.OLE_COLOR pocBackColor);
        [id(0xfffffdfe), propget, helpstring("Returns/sets a value that determines whether an object can respond to user-generated events."), helpcontext(0x0003374b)]
        HRESULT Enabled([out, retval] VARIANT_BOOL* pbEnabled);
        [id(0xfffffdfe), propput, helpstring("Returns/sets a value that determines whether an object can respond to user-generated events."), helpcontext(0x0003374b)]
        HRESULT Enabled([in] VARIANT_BOOL pbEnabled);
        [id(0xfffffe00), propget, helpstring("Returns a Font object."), helpcontext(0x0003374c)]
        HRESULT Font([out, retval] stdole.IFontDisp** ppFont);
        [id(0xfffffe00), propput, helpstring("Returns a Font object."), helpcontext(0x0003374c)]
        HRESULT Font([in] stdole.IFontDisp* ppFont);
        [id(0xfffffe00), propputref, helpstring("Returns a Font object."), helpcontext(0x0003374c)]
        HRESULT Font([in] stdole.IFontDisp* ppFont);
        [id(0xfffffdff), propget, helpstring("Returns/sets the foreground color used to display text and graphics in an object."), helpcontext(0x0003374d)]
        HRESULT ForeColor([out, retval] stdole.OLE_COLOR* pocForeColor);
        [id(0xfffffdff), propput, helpstring("Returns/sets the foreground color used to display text and graphics in an object."), helpcontext(0x0003374d)]
        HRESULT ForeColor([in] stdole.OLE_COLOR pocForeColor);
        [id(0xfffffdfd), propget, helpstring("Returns a handle to the control."), helpcontext(0x0003374e)]
        HRESULT hWnd([out, retval] stdole.OLE_HANDLE* phWnd);
        [id(0xfffffdfd), propput, helpstring("Returns a handle to the control."), helpcontext(0x0003374e)]
        HRESULT hWnd([in] stdole.OLE_HANDLE phWnd);
        [id(0x00000003), propget, helpstring("Returns/sets the ImageList control to be used."), helpcontext(0x0003374f)]
        HRESULT ImageList([out, retval] IDispatch** ppImageList);
        [id(0x00000003), propputref, helpstring("Returns/sets the ImageList control to be used."), helpcontext(0x0003374f)]
        HRESULT ImageList([in] IDispatch* ppImageList);
        [id(0x00000003), propput, helpstring("Returns/sets the ImageList control to be used."), helpcontext(0x0003374f)]
        HRESULT ImageList([in] IDispatch* ppImageList);
        [id(0x00000004), propget, helpstring("The default number of spaces to indent the text for newly added items.  Each indent is equal to 10 pixels."), helpcontext(0x00033750)]
        HRESULT Indentation([out, retval] short* psIndent);
        [id(0x00000004), propput, helpstring("The default number of spaces to indent the text for newly added items.  Each indent is equal to 10 pixels."), helpcontext(0x00033750)]
        HRESULT Indentation([in] short psIndent);
        [id(0x00000007), propget, helpstring("The ComboItems Collection."), helpcontext(0x00033742)]
        HRESULT ComboItems([out, retval] IComboItems** ppComboItems);
        [id(0x00000007), propputref, helpstring("The ComboItems Collection."), helpcontext(0x00033742)]
        HRESULT ComboItems([in] IComboItems* ppComboItems);
        [id(0x00000009), propget, helpstring("Returns/sets a value indicating whether the contents in an Image Combo control can be edited."), helpcontext(0x00033751)]
        HRESULT Locked([out, retval] VARIANT_BOOL* pbLocked);
        [id(0x00000009), propput, helpstring("Returns/sets a value indicating whether the contents in an Image Combo control can be edited."), helpcontext(0x00033751)]
        HRESULT Locked([in] VARIANT_BOOL pbLocked);
        [id(0x0000000a), propget, helpstring("Sets a custom mouse icon."), helpcontext(0x00033752)]
        HRESULT MouseIcon([out, retval] stdole.IPictureDisp** ppMouseIcon);
        [id(0x0000000a), propput, helpstring("Sets a custom mouse icon."), helpcontext(0x00033752)]
        HRESULT MouseIcon([in] stdole.IPictureDisp* ppMouseIcon);
        [id(0x0000000a), propputref, helpstring("Sets a custom mouse icon."), helpcontext(0x00033752)]
        HRESULT MouseIcon([in] stdole.IPictureDisp* ppMouseIcon);
        [id(0x0000000b), propget, helpstring("Returns/sets a value indicating the type of mouse pointer displayed when the mouse is over the control at run time."), helpcontext(0x00033753)]
        HRESULT MousePointer([out, retval] MousePointerConstants* penumMousePointer);
        [id(0x0000000b), propput, helpstring("Returns/sets a value indicating the type of mouse pointer displayed when the mouse is over the control at run time."), helpcontext(0x00033753)]
        HRESULT MousePointer([in] MousePointerConstants penumMousePointer);
        [id(0x0000060e), propget, helpstring("Returns/Sets whether this control can act as an OLE drag/drop source, and whether this process is started automatically or under programmatic control."), helpcontext(0x00033691)]
        HRESULT OLEDragMode([out, retval] OLEDragConstants* psOLEDragMode);
        [id(0x0000060e), propput, helpstring("Returns/Sets whether this control can act as an OLE drag/drop source, and whether this process is started automatically or under programmatic control."), helpcontext(0x00033691)]
        HRESULT OLEDragMode([in] OLEDragConstants psOLEDragMode);
        [id(0x0000060f), propget, helpstring("Returns/Sets whether this control can act as an OLE drop target."), helpcontext(0x00033692)]
        HRESULT OLEDropMode([out, retval] OLEDropConstants* psOLEDropMode);
        [id(0x0000060f), propput, helpstring("Returns/Sets whether this control can act as an OLE drop target."), helpcontext(0x00033692)]
        HRESULT OLEDropMode([in] OLEDropConstants psOLEDropMode);
        [id(0x0000000e), propget, helpstring("Returns a reference to the currently selected ComboItem."), helpcontext(0x00033754)]
        HRESULT SelectedItem([out, retval] IComboItem** ppIComboItem);
        [id(0x0000000e), propputref, helpstring("Returns a reference to the currently selected ComboItem."), helpcontext(0x00033754)]
        HRESULT SelectedItem([in] IComboItem* ppIComboItem);
        [id(0x0000000e), propput, helpstring("Returns a reference to the currently selected ComboItem."), helpcontext(0x00033754)]
        HRESULT SelectedItem([in] VARIANT* ppIComboItem);
        [id(0x00000010), propget, helpstring("Returns/sets the number of characters selected."), helpcontext(0x00033755)]
        HRESULT SelLength([out, retval] long* plSelLength);
        [id(0x00000010), propput, helpstring("Returns/sets the number of characters selected."), helpcontext(0x00033755)]
        HRESULT SelLength([in] long plSelLength);
        [id(0x00000011), propget, helpstring("Returns/sets the starting point of text selected; indicates the position of the insertion point if no text is selected."), helpcontext(0x00033756)]
        HRESULT SelStart([out, retval] long* plSelStart);
        [id(0x00000011), propput, helpstring("Returns/sets the starting point of text selected; indicates the position of the insertion point if no text is selected."), helpcontext(0x00033756)]
        HRESULT SelStart([in] long plSelStart);
        [id(0x00000012), propget, helpstring("Returns/sets the string containing the currently selected text; consists of a zero-length string if no characters are selected."), helpcontext(0x00033757)]
        HRESULT SelText([out, retval] BSTR* pbstrText);
        [id(0x00000012), propput, helpstring("Returns/sets the string containing the currently selected text; consists of a zero-length string if no characters are selected."), helpcontext(0x00033757)]
        HRESULT SelText([in] BSTR pbstrText);
        [id(0x00000014), propget, restricted, hidden, helpstring("Returns/sets the style for an Image Combobox control."), helpcontext(0x00033759)]
        HRESULT Style([out, retval] ImageComboStyleConstants* penumStyle);
        [id(0x00000014), propput, restricted, hidden, helpstring("Returns/sets the style for an Image Combobox control."), helpcontext(0x00033759)]
        HRESULT Style([in] ImageComboStyleConstants penumStyle);
        [id(0x00000018), propget, restricted, hidden, helpstring("(Windows NT Only) Returns/sets a value that determines whether the edit box uses the slash ('/'), backslash ('') and period ('.') characters as word delimiters."), helpcontext(0x0003375b)]
        HRESULT UsePathSep([out, retval] VARIANT_BOOL* pbUsePathSep);
        [id(0x00000018), propput, restricted, hidden, helpstring("(Windows NT Only) Returns/sets a value that determines whether the edit box uses the slash ('/'), backslash ('') and period ('.') characters as word delimiters."), helpcontext(0x0003375b)]
        HRESULT UsePathSep([in] VARIANT_BOOL pbUsePathSep);
        [id(0xfffffdd8), hidden]
        HRESULT AboutBox();
        [id(0x0000001e), helpstring("Retrieves a reference of the first item visible in the list portion of the control."), helpcontext(0x0003375c)]
        HRESULT GetFirstVisible([out, retval] IComboItem** ppIComboItem);
        [id(0xfffffdda), helpstring("Forces a complete repaint of a control."), helpcontext(0x0003375d)]
        HRESULT Refresh();
        [id(0x00000610), helpstring("Starts an OLE drag/drop event with the given control as the source."), helpcontext(0x00033690)]
        HRESULT OLEDrag();
    };

    [
        uuid(DD9DA665-8594-11D1-B16A-00C0F0283628),
        helpstring("Event interface for ImageComboBox control"),
        helpcontext(0x0003375f),
        hidden
    ]
    dispinterface DImageComboEvents {
    properties:
    methods:
        [id(0x00000001), helpstring("Occurs when the contents of a control have changed."), helpcontext(0x00033760)]
        void Change();
        [id(0x00000002), helpstring("Occurs when the list portion of the Image Combo is about to drop down."), helpcontext(0x00033763)]
        void Dropdown();
        [id(0xfffffda8), helpstring("Occurs when the user presses and then releases a mouse button over an object."), helpcontext(0x00033761)]
        void Click();
        [id(0xfffffda6), helpstring("Occurs when the user presses a key while an object has the focus."), helpcontext(0x00033764)]
        void KeyDown(
            short KeyCode,
            short Shift);
        [id(0xfffffda4), helpstring("Occurs when the user releases a key while an object has the focus."), helpcontext(0x00033765)]
        void KeyUp(
            short KeyCode,
            short Shift);
        [id(0xfffffda5), helpstring("Occurs when the user presses and releases an ANSI key."), helpcontext(0x00033766)]
        void KeyPress(short* KeyAscii);
        [id(0x0000060e), helpstring("OLEStartDrag event"), helpcontext(0x000336cf)]
        void OLEStartDrag(
            [in, out] DataObject** Data,
            [in, out] long* AllowedEffects);
        [id(0x0000060f), helpstring("OLEGiveFeedback event"), helpcontext(0x000336d0)]
        void OLEGiveFeedback(
            [in, out] long* Effect,
            [in, out] VARIANT_BOOL* DefaultCursors);
        [id(0x00000610), helpstring("OLESetData event"), helpcontext(0x000336d1)]
        void OLESetData(
            [in, out] DataObject** Data,
            [in, out] short* DataFormat);
        [id(0x00000611), helpstring("OLECompleteDrag event"), helpcontext(0x000336d2)]
        void OLECompleteDrag([in, out] long* Effect);
        [id(0x00000612), helpstring("OLEDragOver event"), helpcontext(0x000336d3)]
        void OLEDragOver(
            [in, out] DataObject** Data,
            [in, out] long* Effect,
            [in, out] short* Button,
            [in, out] short* Shift,
            [in, out] float* x,
            [in, out] float* y,
            [in, out] short* State);
        [id(0x00000613), helpstring("OLEDragDrop event"), helpcontext(0x000336d4)]
        void OLEDragDrop(
            [in, out] DataObject** Data,
            [in, out] long* Effect,
            [in, out] short* Button,
            [in, out] short* Shift,
            [in, out] float* x,
            [in, out] float* y);
    };

    [
        uuid(DD9DA666-8594-11D1-B16A-00C0F0283628),
        helpstring("Microsoft ImageComboBox Control"),
        helpcontext(0x00033732),
        licensed,
        control
    ]
    coclass ImageCombo {
        [default] interface IImageCombo;
        [default, source] dispinterface DImageComboEvents;
    };

};