Click here to Skip to main content
15,886,075 members
Articles / Desktop Programming / ATL

ATL COM Shared Add Ins Using C++ - The Easy Way

Rate me:
Please Sign up or sign in to vote.
4.33/5 (4 votes)
5 Mar 2007CPOL27 min read 77.4K   1.5K   32  
ATL COM Shared Add Ins Using C++ - The Easy Way
// Generated .IDL file (by the OLE/COM Object Viewer)
// 
// typelib filename: MSO.DLL

[
  uuid(2DF8D04C-5BFA-101B-BDE5-00AA0044DE52),
  version(2.3),
  helpstring("Microsoft Office 11.0 Object Library"),
  helpfile("vbaof11.chm"),
  helpcontext(0x00000001),
]
library Office
{
    // TLib :     // TLib : OLE Automation : {00020430-0000-0000-C000-000000000046}
    importlib("stdole2.tlb");

	typedef float single;
	coclass CommandBarComboBox;
	coclass CommandBarButton;
    // Forward declare all types defined in this typelib
    interface IAccessible2;
    interface _IMsoDispObj;
    interface _IMsoOleAccDispObj;
    interface _CommandBars;
    interface CommandBar;
    interface CommandBarControls;
    interface CommandBarControl;
    interface _CommandBarButton;
    interface CommandBarPopup;
    interface _CommandBarComboBox;
    interface _CommandBarActiveX;
    interface Adjustments;
    interface CalloutFormat;
    interface ColorFormat;
    interface ConnectorFormat;
    interface FillFormat;
    interface FreeformBuilder;
    interface GroupShapes;
    interface LineFormat;
    interface ShapeNode;
    interface ShapeNodes;
    interface PictureFormat;
    interface ShadowFormat;
    interface Script;
    interface Scripts;
    interface Shape;
    interface ShapeRange;
    interface Shapes;
    interface TextEffectFormat;
    interface TextFrame;
    interface ThreeDFormat;
    interface IMsoDispCagNotifySink;
    interface Balloon;
    interface BalloonCheckboxes;
    interface BalloonCheckbox;
    interface BalloonLabels;
    interface BalloonLabel;
    interface AnswerWizardFiles;
    interface AnswerWizard;
    interface Assistant;
    interface DocumentProperty;
    interface DocumentProperties;
    interface IFoundFiles;
    interface IFind;
    interface FoundFiles;
    interface PropertyTest;
    interface PropertyTests;
    interface FileSearch;
    interface COMAddIn;
    interface COMAddIns;
    interface LanguageSettings;
    interface ICommandBarsEvents;
    dispinterface _CommandBarsEvents;
    interface ICommandBarComboBoxEvents;
    dispinterface _CommandBarComboBoxEvents;
    interface ICommandBarButtonEvents;
    dispinterface _CommandBarButtonEvents;
    interface WebPageFont;
    interface WebPageFonts;
    interface HTMLProjectItem;
    interface HTMLProjectItems;
    interface HTMLProject;
    interface MsoDebugOptions;
    interface FileDialogSelectedItems;
    interface FileDialogFilter;
    interface FileDialogFilters;
    interface FileDialog;
    interface SignatureSet;
    interface Signature;
    interface IMsoEnvelopeVB;
    dispinterface IMsoEnvelopeVBEvents;
    interface FileTypes;
    interface SearchFolders;
    interface ScopeFolders;
    interface ScopeFolder;
    interface SearchScope;
    interface SearchScopes;
    interface IMsoDiagram;
    interface DiagramNodes;
    interface DiagramNodeChildren;
    interface DiagramNode;
    interface CanvasShapes;
    interface OfficeDataSourceObject;
    interface ODSOColumn;
    interface ODSOColumns;
    interface ODSOFilter;
    interface ODSOFilters;
    interface NewFile;
    interface WebComponent;
    interface WebComponentWindowExternal;
    interface WebComponentFormat;
    interface ILicWizExternal;
    interface ILicValidator;
    interface ILicAgent;
    interface IMsoEServicesDialog;
    interface WebComponentProperties;
    interface SmartDocument;
    interface SharedWorkspaceMember;
    interface SharedWorkspaceMembers;
    interface SharedWorkspaceTask;
    interface SharedWorkspaceTasks;
    interface SharedWorkspaceFile;
    interface SharedWorkspaceFiles;
    interface SharedWorkspaceFolder;
    interface SharedWorkspaceFolders;
    interface SharedWorkspaceLink;
    interface SharedWorkspaceLinks;
    interface SharedWorkspace;
    interface Sync;
    interface DocumentLibraryVersion;
    interface DocumentLibraryVersions;
    interface UserPermission;
    interface Permission;

    typedef enum {
        msoLineDashStyleMixed = 0xfffffffe,
        msoLineSolid = 1,
        msoLineSquareDot = 2,
        msoLineRoundDot = 3,
        msoLineDash = 4,
        msoLineDashDot = 5,
        msoLineDashDotDot = 6,
        msoLineLongDash = 7,
        msoLineLongDashDot = 8
    } MsoLineDashStyle;

    typedef enum {
        msoLineStyleMixed = 0xfffffffe,
        msoLineSingle = 1,
        msoLineThinThin = 2,
        msoLineThinThick = 3,
        msoLineThickThin = 4,
        msoLineThickBetweenThin = 5
    } MsoLineStyle;

    typedef enum {
        msoArrowheadStyleMixed = 0xfffffffe,
        msoArrowheadNone = 1,
        msoArrowheadTriangle = 2,
        msoArrowheadOpen = 3,
        msoArrowheadStealth = 4,
        msoArrowheadDiamond = 5,
        msoArrowheadOval = 6
    } MsoArrowheadStyle;

    typedef enum {
        msoArrowheadWidthMixed = 0xfffffffe,
        msoArrowheadNarrow = 1,
        msoArrowheadWidthMedium = 2,
        msoArrowheadWide = 3
    } MsoArrowheadWidth;

    typedef enum {
        msoArrowheadLengthMixed = 0xfffffffe,
        msoArrowheadShort = 1,
        msoArrowheadLengthMedium = 2,
        msoArrowheadLong = 3
    } MsoArrowheadLength;

    typedef enum {
        msoFillMixed = 0xfffffffe,
        msoFillSolid = 1,
        msoFillPatterned = 2,
        msoFillGradient = 3,
        msoFillTextured = 4,
        msoFillBackground = 5,
        msoFillPicture = 6
    } MsoFillType;

    typedef enum {
        msoGradientMixed = 0xfffffffe,
        msoGradientHorizontal = 1,
        msoGradientVertical = 2,
        msoGradientDiagonalUp = 3,
        msoGradientDiagonalDown = 4,
        msoGradientFromCorner = 5,
        msoGradientFromTitle = 6,
        msoGradientFromCenter = 7
    } MsoGradientStyle;

    typedef enum {
        msoGradientColorMixed = 0xfffffffe,
        msoGradientOneColor = 1,
        msoGradientTwoColors = 2,
        msoGradientPresetColors = 3
    } MsoGradientColorType;

    typedef enum {
        msoTextureTypeMixed = 0xfffffffe,
        msoTexturePreset = 1,
        msoTextureUserDefined = 2
    } MsoTextureType;

    typedef enum {
        msoPresetTextureMixed = 0xfffffffe,
        msoTexturePapyrus = 1,
        msoTextureCanvas = 2,
        msoTextureDenim = 3,
        msoTextureWovenMat = 4,
        msoTextureWaterDroplets = 5,
        msoTexturePaperBag = 6,
        msoTextureFishFossil = 7,
        msoTextureSand = 8,
        msoTextureGreenMarble = 9,
        msoTextureWhiteMarble = 10,
        msoTextureBrownMarble = 11,
        msoTextureGranite = 12,
        msoTextureNewsprint = 13,
        msoTextureRecycledPaper = 14,
        msoTextureParchment = 15,
        msoTextureStationery = 16,
        msoTextureBlueTissuePaper = 17,
        msoTexturePinkTissuePaper = 18,
        msoTexturePurpleMesh = 19,
        msoTextureBouquet = 20,
        msoTextureCork = 21,
        msoTextureWalnut = 22,
        msoTextureOak = 23,
        msoTextureMediumWood = 24
    } MsoPresetTexture;

    typedef enum {
        msoPatternMixed = 0xfffffffe,
        msoPattern5Percent = 1,
        msoPattern10Percent = 2,
        msoPattern20Percent = 3,
        msoPattern25Percent = 4,
        msoPattern30Percent = 5,
        msoPattern40Percent = 6,
        msoPattern50Percent = 7,
        msoPattern60Percent = 8,
        msoPattern70Percent = 9,
        msoPattern75Percent = 10,
        msoPattern80Percent = 11,
        msoPattern90Percent = 12,
        msoPatternDarkHorizontal = 13,
        msoPatternDarkVertical = 14,
        msoPatternDarkDownwardDiagonal = 15,
        msoPatternDarkUpwardDiagonal = 16,
        msoPatternSmallCheckerBoard = 17,
        msoPatternTrellis = 18,
        msoPatternLightHorizontal = 19,
        msoPatternLightVertical = 20,
        msoPatternLightDownwardDiagonal = 21,
        msoPatternLightUpwardDiagonal = 22,
        msoPatternSmallGrid = 23,
        msoPatternDottedDiamond = 24,
        msoPatternWideDownwardDiagonal = 25,
        msoPatternWideUpwardDiagonal = 26,
        msoPatternDashedUpwardDiagonal = 27,
        msoPatternDashedDownwardDiagonal = 28,
        msoPatternNarrowVertical = 29,
        msoPatternNarrowHorizontal = 30,
        msoPatternDashedVertical = 31,
        msoPatternDashedHorizontal = 32,
        msoPatternLargeConfetti = 33,
        msoPatternLargeGrid = 34,
        msoPatternHorizontalBrick = 35,
        msoPatternLargeCheckerBoard = 36,
        msoPatternSmallConfetti = 37,
        msoPatternZigZag = 38,
        msoPatternSolidDiamond = 39,
        msoPatternDiagonalBrick = 40,
        msoPatternOutlinedDiamond = 41,
        msoPatternPlaid = 42,
        msoPatternSphere = 43,
        msoPatternWeave = 44,
        msoPatternDottedGrid = 45,
        msoPatternDivot = 46,
        msoPatternShingle = 47,
        msoPatternWave = 48
    } MsoPatternType;

    typedef enum {
        msoPresetGradientMixed = 0xfffffffe,
        msoGradientEarlySunset = 1,
        msoGradientLateSunset = 2,
        msoGradientNightfall = 3,
        msoGradientDaybreak = 4,
        msoGradientHorizon = 5,
        msoGradientDesert = 6,
        msoGradientOcean = 7,
        msoGradientCalmWater = 8,
        msoGradientFire = 9,
        msoGradientFog = 10,
        msoGradientMoss = 11,
        msoGradientPeacock = 12,
        msoGradientWheat = 13,
        msoGradientParchment = 14,
        msoGradientMahogany = 15,
        msoGradientRainbow = 16,
        msoGradientRainbowII = 17,
        msoGradientGold = 18,
        msoGradientGoldII = 19,
        msoGradientBrass = 20,
        msoGradientChrome = 21,
        msoGradientChromeII = 22,
        msoGradientSilver = 23,
        msoGradientSapphire = 24
    } MsoPresetGradientType;

    typedef enum {
        msoShadowMixed = 0xfffffffe,
        msoShadow1 = 1,
        msoShadow2 = 2,
        msoShadow3 = 3,
        msoShadow4 = 4,
        msoShadow5 = 5,
        msoShadow6 = 6,
        msoShadow7 = 7,
        msoShadow8 = 8,
        msoShadow9 = 9,
        msoShadow10 = 10,
        msoShadow11 = 11,
        msoShadow12 = 12,
        msoShadow13 = 13,
        msoShadow14 = 14,
        msoShadow15 = 15,
        msoShadow16 = 16,
        msoShadow17 = 17,
        msoShadow18 = 18,
        msoShadow19 = 19,
        msoShadow20 = 20
    } MsoShadowType;

    typedef enum {
        msoTextEffectMixed = 0xfffffffe,
        msoTextEffect1 = 0,
        msoTextEffect2 = 1,
        msoTextEffect3 = 2,
        msoTextEffect4 = 3,
        msoTextEffect5 = 4,
        msoTextEffect6 = 5,
        msoTextEffect7 = 6,
        msoTextEffect8 = 7,
        msoTextEffect9 = 8,
        msoTextEffect10 = 9,
        msoTextEffect11 = 10,
        msoTextEffect12 = 11,
        msoTextEffect13 = 12,
        msoTextEffect14 = 13,
        msoTextEffect15 = 14,
        msoTextEffect16 = 15,
        msoTextEffect17 = 16,
        msoTextEffect18 = 17,
        msoTextEffect19 = 18,
        msoTextEffect20 = 19,
        msoTextEffect21 = 20,
        msoTextEffect22 = 21,
        msoTextEffect23 = 22,
        msoTextEffect24 = 23,
        msoTextEffect25 = 24,
        msoTextEffect26 = 25,
        msoTextEffect27 = 26,
        msoTextEffect28 = 27,
        msoTextEffect29 = 28,
        msoTextEffect30 = 29
    } MsoPresetTextEffect;

    typedef enum {
        msoTextEffectShapeMixed = 0xfffffffe,
        msoTextEffectShapePlainText = 1,
        msoTextEffectShapeStop = 2,
        msoTextEffectShapeTriangleUp = 3,
        msoTextEffectShapeTriangleDown = 4,
        msoTextEffectShapeChevronUp = 5,
        msoTextEffectShapeChevronDown = 6,
        msoTextEffectShapeRingInside = 7,
        msoTextEffectShapeRingOutside = 8,
        msoTextEffectShapeArchUpCurve = 9,
        msoTextEffectShapeArchDownCurve = 10,
        msoTextEffectShapeCircleCurve = 11,
        msoTextEffectShapeButtonCurve = 12,
        msoTextEffectShapeArchUpPour = 13,
        msoTextEffectShapeArchDownPour = 14,
        msoTextEffectShapeCirclePour = 15,
        msoTextEffectShapeButtonPour = 16,
        msoTextEffectShapeCurveUp = 17,
        msoTextEffectShapeCurveDown = 18,
        msoTextEffectShapeCanUp = 19,
        msoTextEffectShapeCanDown = 20,
        msoTextEffectShapeWave1 = 21,
        msoTextEffectShapeWave2 = 22,
        msoTextEffectShapeDoubleWave1 = 23,
        msoTextEffectShapeDoubleWave2 = 24,
        msoTextEffectShapeInflate = 25,
        msoTextEffectShapeDeflate = 26,
        msoTextEffectShapeInflateBottom = 27,
        msoTextEffectShapeDeflateBottom = 28,
        msoTextEffectShapeInflateTop = 29,
        msoTextEffectShapeDeflateTop = 30,
        msoTextEffectShapeDeflateInflate = 31,
        msoTextEffectShapeDeflateInflateDeflate = 32,
        msoTextEffectShapeFadeRight = 33,
        msoTextEffectShapeFadeLeft = 34,
        msoTextEffectShapeFadeUp = 35,
        msoTextEffectShapeFadeDown = 36,
        msoTextEffectShapeSlantUp = 37,
        msoTextEffectShapeSlantDown = 38,
        msoTextEffectShapeCascadeUp = 39,
        msoTextEffectShapeCascadeDown = 40
    } MsoPresetTextEffectShape;

    typedef enum {
        msoTextEffectAlignmentMixed = 0xfffffffe,
        msoTextEffectAlignmentLeft = 1,
        msoTextEffectAlignmentCentered = 2,
        msoTextEffectAlignmentRight = 3,
        msoTextEffectAlignmentLetterJustify = 4,
        msoTextEffectAlignmentWordJustify = 5,
        msoTextEffectAlignmentStretchJustify = 6
    } MsoTextEffectAlignment;

    typedef enum {
        msoPresetLightingDirectionMixed = 0xfffffffe,
        msoLightingTopLeft = 1,
        msoLightingTop = 2,
        msoLightingTopRight = 3,
        msoLightingLeft = 4,
        msoLightingNone = 5,
        msoLightingRight = 6,
        msoLightingBottomLeft = 7,
        msoLightingBottom = 8,
        msoLightingBottomRight = 9
    } MsoPresetLightingDirection;

    typedef enum {
        msoPresetLightingSoftnessMixed = 0xfffffffe,
        msoLightingDim = 1,
        msoLightingNormal = 2,
        msoLightingBright = 3
    } MsoPresetLightingSoftness;

    typedef enum {
        msoPresetMaterialMixed = 0xfffffffe,
        msoMaterialMatte = 1,
        msoMaterialPlastic = 2,
        msoMaterialMetal = 3,
        msoMaterialWireFrame = 4
    } MsoPresetMaterial;

    typedef enum {
        msoPresetExtrusionDirectionMixed = 0xfffffffe,
        msoExtrusionBottomRight = 1,
        msoExtrusionBottom = 2,
        msoExtrusionBottomLeft = 3,
        msoExtrusionRight = 4,
        msoExtrusionNone = 5,
        msoExtrusionLeft = 6,
        msoExtrusionTopRight = 7,
        msoExtrusionTop = 8,
        msoExtrusionTopLeft = 9
    } MsoPresetExtrusionDirection;

    typedef enum {
        msoPresetThreeDFormatMixed = 0xfffffffe,
        msoThreeD1 = 1,
        msoThreeD2 = 2,
        msoThreeD3 = 3,
        msoThreeD4 = 4,
        msoThreeD5 = 5,
        msoThreeD6 = 6,
        msoThreeD7 = 7,
        msoThreeD8 = 8,
        msoThreeD9 = 9,
        msoThreeD10 = 10,
        msoThreeD11 = 11,
        msoThreeD12 = 12,
        msoThreeD13 = 13,
        msoThreeD14 = 14,
        msoThreeD15 = 15,
        msoThreeD16 = 16,
        msoThreeD17 = 17,
        msoThreeD18 = 18,
        msoThreeD19 = 19,
        msoThreeD20 = 20
    } MsoPresetThreeDFormat;

    typedef enum {
        msoExtrusionColorTypeMixed = 0xfffffffe,
        msoExtrusionColorAutomatic = 1,
        msoExtrusionColorCustom = 2
    } MsoExtrusionColorType;

    typedef enum {
        msoAlignLefts = 0,
        msoAlignCenters = 1,
        msoAlignRights = 2,
        msoAlignTops = 3,
        msoAlignMiddles = 4,
        msoAlignBottoms = 5
    } MsoAlignCmd;

    typedef enum {
        msoDistributeHorizontally = 0,
        msoDistributeVertically = 1
    } MsoDistributeCmd;

    typedef enum {
        msoConnectorTypeMixed = 0xfffffffe,
        msoConnectorStraight = 1,
        msoConnectorElbow = 2,
        msoConnectorCurve = 3
    } MsoConnectorType;

    typedef enum {
        msoHorizontalAnchorMixed = 0xfffffffe,
        msoAnchorNone = 1,
        msoAnchorCenter = 2
    } MsoHorizontalAnchor;

    typedef enum {
        msoVerticalAnchorMixed = 0xfffffffe,
        msoAnchorTop = 1,
        msoAnchorTopBaseline = 2,
        msoAnchorMiddle = 3,
        msoAnchorBottom = 4,
        msoAnchorBottomBaseLine = 5
    } MsoVerticalAnchor;

    typedef enum {
        msoOrientationMixed = 0xfffffffe,
        msoOrientationHorizontal = 1,
        msoOrientationVertical = 2
    } MsoOrientation;

    typedef enum {
        msoBringToFront = 0,
        msoSendToBack = 1,
        msoBringForward = 2,
        msoSendBackward = 3,
        msoBringInFrontOfText = 4,
        msoSendBehindText = 5
    } MsoZOrderCmd;

    typedef enum {
        msoSegmentLine = 0,
        msoSegmentCurve = 1
    } MsoSegmentType;

    typedef enum {
        msoEditingAuto = 0,
        msoEditingCorner = 1,
        msoEditingSmooth = 2,
        msoEditingSymmetric = 3
    } MsoEditingType;

    typedef enum {
        msoShapeMixed = 0xfffffffe,
        msoShapeRectangle = 1,
        msoShapeParallelogram = 2,
        msoShapeTrapezoid = 3,
        msoShapeDiamond = 4,
        msoShapeRoundedRectangle = 5,
        msoShapeOctagon = 6,
        msoShapeIsoscelesTriangle = 7,
        msoShapeRightTriangle = 8,
        msoShapeOval = 9,
        msoShapeHexagon = 10,
        msoShapeCross = 11,
        msoShapeRegularPentagon = 12,
        msoShapeCan = 13,
        msoShapeCube = 14,
        msoShapeBevel = 15,
        msoShapeFoldedCorner = 16,
        msoShapeSmileyFace = 17,
        msoShapeDonut = 18,
        msoShapeNoSymbol = 19,
        msoShapeBlockArc = 20,
        msoShapeHeart = 21,
        msoShapeLightningBolt = 22,
        msoShapeSun = 23,
        msoShapeMoon = 24,
        msoShapeArc = 25,
        msoShapeDoubleBracket = 26,
        msoShapeDoubleBrace = 27,
        msoShapePlaque = 28,
        msoShapeLeftBracket = 29,
        msoShapeRightBracket = 30,
        msoShapeLeftBrace = 31,
        msoShapeRightBrace = 32,
        msoShapeRightArrow = 33,
        msoShapeLeftArrow = 34,
        msoShapeUpArrow = 35,
        msoShapeDownArrow = 36,
        msoShapeLeftRightArrow = 37,
        msoShapeUpDownArrow = 38,
        msoShapeQuadArrow = 39,
        msoShapeLeftRightUpArrow = 40,
        msoShapeBentArrow = 41,
        msoShapeUTurnArrow = 42,
        msoShapeLeftUpArrow = 43,
        msoShapeBentUpArrow = 44,
        msoShapeCurvedRightArrow = 45,
        msoShapeCurvedLeftArrow = 46,
        msoShapeCurvedUpArrow = 47,
        msoShapeCurvedDownArrow = 48,
        msoShapeStripedRightArrow = 49,
        msoShapeNotchedRightArrow = 50,
        msoShapePentagon = 51,
        msoShapeChevron = 52,
        msoShapeRightArrowCallout = 53,
        msoShapeLeftArrowCallout = 54,
        msoShapeUpArrowCallout = 55,
        msoShapeDownArrowCallout = 56,
        msoShapeLeftRightArrowCallout = 57,
        msoShapeUpDownArrowCallout = 58,
        msoShapeQuadArrowCallout = 59,
        msoShapeCircularArrow = 60,
        msoShapeFlowchartProcess = 61,
        msoShapeFlowchartAlternateProcess = 62,
        msoShapeFlowchartDecision = 63,
        msoShapeFlowchartData = 64,
        msoShapeFlowchartPredefinedProcess = 65,
        msoShapeFlowchartInternalStorage = 66,
        msoShapeFlowchartDocument = 67,
        msoShapeFlowchartMultidocument = 68,
        msoShapeFlowchartTerminator = 69,
        msoShapeFlowchartPreparation = 70,
        msoShapeFlowchartManualInput = 71,
        msoShapeFlowchartManualOperation = 72,
        msoShapeFlowchartConnector = 73,
        msoShapeFlowchartOffpageConnector = 74,
        msoShapeFlowchartCard = 75,
        msoShapeFlowchartPunchedTape = 76,
        msoShapeFlowchartSummingJunction = 77,
        msoShapeFlowchartOr = 78,
        msoShapeFlowchartCollate = 79,
        msoShapeFlowchartSort = 80,
        msoShapeFlowchartExtract = 81,
        msoShapeFlowchartMerge = 82,
        msoShapeFlowchartStoredData = 83,
        msoShapeFlowchartDelay = 84,
        msoShapeFlowchartSequentialAccessStorage = 85,
        msoShapeFlowchartMagneticDisk = 86,
        msoShapeFlowchartDirectAccessStorage = 87,
        msoShapeFlowchartDisplay = 88,
        msoShapeExplosion1 = 89,
        msoShapeExplosion2 = 90,
        msoShape4pointStar = 91,
        msoShape5pointStar = 92,
        msoShape8pointStar = 93,
        msoShape16pointStar = 94,
        msoShape24pointStar = 95,
        msoShape32pointStar = 96,
        msoShapeUpRibbon = 97,
        msoShapeDownRibbon = 98,
        msoShapeCurvedUpRibbon = 99,
        msoShapeCurvedDownRibbon = 100,
        msoShapeVerticalScroll = 101,
        msoShapeHorizontalScroll = 102,
        msoShapeWave = 103,
        msoShapeDoubleWave = 104,
        msoShapeRectangularCallout = 105,
        msoShapeRoundedRectangularCallout = 106,
        msoShapeOvalCallout = 107,
        msoShapeCloudCallout = 108,
        msoShapeLineCallout1 = 109,
        msoShapeLineCallout2 = 110,
        msoShapeLineCallout3 = 111,
        msoShapeLineCallout4 = 112,
        msoShapeLineCallout1AccentBar = 113,
        msoShapeLineCallout2AccentBar = 114,
        msoShapeLineCallout3AccentBar = 115,
        msoShapeLineCallout4AccentBar = 116,
        msoShapeLineCallout1NoBorder = 117,
        msoShapeLineCallout2NoBorder = 118,
        msoShapeLineCallout3NoBorder = 119,
        msoShapeLineCallout4NoBorder = 120,
        msoShapeLineCallout1BorderandAccentBar = 121,
        msoShapeLineCallout2BorderandAccentBar = 122,
        msoShapeLineCallout3BorderandAccentBar = 123,
        msoShapeLineCallout4BorderandAccentBar = 124,
        msoShapeActionButtonCustom = 125,
        msoShapeActionButtonHome = 126,
        msoShapeActionButtonHelp = 127,
        msoShapeActionButtonInformation = 128,
        msoShapeActionButtonBackorPrevious = 129,
        msoShapeActionButtonForwardorNext = 130,
        msoShapeActionButtonBeginning = 131,
        msoShapeActionButtonEnd = 132,
        msoShapeActionButtonReturn = 133,
        msoShapeActionButtonDocument = 134,
        msoShapeActionButtonSound = 135,
        msoShapeActionButtonMovie = 136,
        msoShapeBalloon = 137,
        msoShapeNotPrimitive = 138
    } MsoAutoShapeType;

    typedef enum {
        msoShapeTypeMixed = 0xfffffffe,
        msoAutoShape = 1,
        msoCallout = 2,
        msoChart = 3,
        msoComment = 4,
        msoFreeform = 5,
        msoGroup = 6,
        msoEmbeddedOLEObject = 7,
        msoFormControl = 8,
        msoLine = 9,
        msoLinkedOLEObject = 10,
        msoLinkedPicture = 11,
        msoOLEControlObject = 12,
        msoPicture = 13,
        msoPlaceholder = 14,
        msoTextEffect = 15,
        msoMedia = 16,
        msoTextBox = 17,
        msoScriptAnchor = 18,
        msoTable = 19,
        msoCanvas = 20,
        msoDiagram = 21,
        msoInk = 22,
        msoInkComment = 23
    } MsoShapeType;

    typedef enum {
        msoFlipHorizontal = 0,
        msoFlipVertical = 1
    } MsoFlipCmd;

    typedef enum {
        msoTrue = 0xffffffff,
        msoFalse = 0,
        msoCTrue = 1,
        msoTriStateToggle = 0xfffffffd,
        msoTriStateMixed = 0xfffffffe
    } MsoTriState;

    typedef enum {
        msoColorTypeMixed = 0xfffffffe,
        msoColorTypeRGB = 1,
        msoColorTypeScheme = 2,
        msoColorTypeCMYK = 3,
        msoColorTypeCMS = 4,
        msoColorTypeInk = 5
    } MsoColorType;

    typedef enum {
        msoPictureMixed = 0xfffffffe,
        msoPictureAutomatic = 1,
        msoPictureGrayscale = 2,
        msoPictureBlackAndWhite = 3,
        msoPictureWatermark = 4
    } MsoPictureColorType;

    typedef enum {
        msoCalloutAngleMixed = 0xfffffffe,
        msoCalloutAngleAutomatic = 1,
        msoCalloutAngle30 = 2,
        msoCalloutAngle45 = 3,
        msoCalloutAngle60 = 4,
        msoCalloutAngle90 = 5
    } MsoCalloutAngleType;

    typedef enum {
        msoCalloutDropMixed = 0xfffffffe,
        msoCalloutDropCustom = 1,
        msoCalloutDropTop = 2,
        msoCalloutDropCenter = 3,
        msoCalloutDropBottom = 4
    } MsoCalloutDropType;

    typedef enum {
        msoCalloutMixed = 0xfffffffe,
        msoCalloutOne = 1,
        msoCalloutTwo = 2,
        msoCalloutThree = 3,
        msoCalloutFour = 4
    } MsoCalloutType;

    typedef enum {
        msoBlackWhiteMixed = 0xfffffffe,
        msoBlackWhiteAutomatic = 1,
        msoBlackWhiteGrayScale = 2,
        msoBlackWhiteLightGrayScale = 3,
        msoBlackWhiteInverseGrayScale = 4,
        msoBlackWhiteGrayOutline = 5,
        msoBlackWhiteBlackTextAndLine = 6,
        msoBlackWhiteHighContrast = 7,
        msoBlackWhiteBlack = 8,
        msoBlackWhiteWhite = 9,
        msoBlackWhiteDontShow = 10
    } MsoBlackWhiteMode;

    typedef enum {
        msoIntegerMixed = 32768,
        msoSingleMixed = 0x80000000
    } MsoMixedType;

    typedef enum {
        msoTextOrientationMixed = 0xfffffffe,
        msoTextOrientationHorizontal = 1,
        msoTextOrientationUpward = 2,
        msoTextOrientationDownward = 3,
        msoTextOrientationVerticalFarEast = 4,
        msoTextOrientationVertical = 5,
        msoTextOrientationHorizontalRotatedFarEast = 6
    } MsoTextOrientation;

    typedef enum {
        msoScaleFromTopLeft = 0,
        msoScaleFromMiddle = 1,
        msoScaleFromBottomRight = 2
    } MsoScaleFrom;

    typedef [public]
    long MsoRGBType;

    typedef enum {
        msoBarLeft = 0,
        msoBarTop = 1,
        msoBarRight = 2,
        msoBarBottom = 3,
        msoBarFloating = 4,
        msoBarPopup = 5,
        msoBarMenuBar = 6
    } MsoBarPosition;

    typedef enum {
        msoBarNoProtection = 0,
        msoBarNoCustomize = 1,
        msoBarNoResize = 2,
        msoBarNoMove = 4,
        msoBarNoChangeVisible = 8,
        msoBarNoChangeDock = 16,
        msoBarNoVerticalDock = 32,
        msoBarNoHorizontalDock = 64
    } MsoBarProtection;

    typedef enum {
        msoBarTypeNormal = 0,
        msoBarTypeMenuBar = 1,
        msoBarTypePopup = 2
    } MsoBarType;

    typedef enum {
        msoControlCustom = 0,
        msoControlButton = 1,
        msoControlEdit = 2,
        msoControlDropdown = 3,
        msoControlComboBox = 4,
        msoControlButtonDropdown = 5,
        msoControlSplitDropdown = 6,
        msoControlOCXDropdown = 7,
        msoControlGenericDropdown = 8,
        msoControlGraphicDropdown = 9,
        msoControlPopup = 10,
        msoControlGraphicPopup = 11,
        msoControlButtonPopup = 12,
        msoControlSplitButtonPopup = 13,
        msoControlSplitButtonMRUPopup = 14,
        msoControlLabel = 15,
        msoControlExpandingGrid = 16,
        msoControlSplitExpandingGrid = 17,
        msoControlGrid = 18,
        msoControlGauge = 19,
        msoControlGraphicCombo = 20,
        msoControlPane = 21,
        msoControlActiveX = 22,
        msoControlSpinner = 23,
        msoControlLabelEx = 24,
        msoControlWorkPane = 25,
        msoControlAutoCompleteCombo = 26
    } MsoControlType;

    typedef enum {
        msoButtonUp = 0,
        msoButtonDown = 0xffffffff,
        msoButtonMixed = 2
    } MsoButtonState;

    typedef enum {
        msoControlOLEUsageNeither = 0,
        msoControlOLEUsageServer = 1,
        msoControlOLEUsageClient = 2,
        msoControlOLEUsageBoth = 3
    } MsoControlOLEUsage;

    typedef enum {
        msoButtonWrapText = 4,
        msoButtonTextBelow = 8
    } MsoButtonStyleHidden;

    typedef enum {
        msoButtonAutomatic = 0,
        msoButtonIcon = 1,
        msoButtonCaption = 2,
        msoButtonIconAndCaption = 3,
        msoButtonIconAndWrapCaption = 7,
        msoButtonIconAndCaptionBelow = 11,
        msoButtonWrapCaption = 14,
        msoButtonIconAndWrapCaptionBelow = 15
    } MsoButtonStyle;

    typedef enum {
        msoComboNormal = 0,
        msoComboLabel = 1
    } MsoComboStyle;

    typedef enum {
        msoOLEMenuGroupNone = 0xffffffff,
        msoOLEMenuGroupFile = 0,
        msoOLEMenuGroupEdit = 1,
        msoOLEMenuGroupContainer = 2,
        msoOLEMenuGroupObject = 3,
        msoOLEMenuGroupWindow = 4,
        msoOLEMenuGroupHelp = 5
    } MsoOLEMenuGroup;

    typedef enum {
        msoMenuAnimationNone = 0,
        msoMenuAnimationRandom = 1,
        msoMenuAnimationUnfold = 2,
        msoMenuAnimationSlide = 3
    } MsoMenuAnimation;

    typedef enum {
        msoBarRowFirst = 0,
        msoBarRowLast = 0xffffffff
    } MsoBarRow;

    typedef enum {
        msoCommandBarButtonHyperlinkNone = 0,
        msoCommandBarButtonHyperlinkOpen = 1,
        msoCommandBarButtonHyperlinkInsertPicture = 2
    } MsoCommandBarButtonHyperlinkType;

    typedef enum {
        msoHyperlinkRange = 0,
        msoHyperlinkShape = 1,
        msoHyperlinkInlineShape = 2
    } MsoHyperlinkType;

    typedef enum {
        msoMethodGet = 0,
        msoMethodPost = 1
    } MsoExtraInfoMethod;

    typedef enum {
        msoAnimationIdle = 1,
        msoAnimationGreeting = 2,
        msoAnimationGoodbye = 3,
        msoAnimationBeginSpeaking = 4,
        msoAnimationRestPose = 5,
        msoAnimationCharacterSuccessMajor = 6,
        msoAnimationGetAttentionMajor = 11,
        msoAnimationGetAttentionMinor = 12,
        msoAnimationSearching = 13,
        msoAnimationPrinting = 18,
        msoAnimationGestureRight = 19,
        msoAnimationWritingNotingSomething = 22,
        msoAnimationWorkingAtSomething = 23,
        msoAnimationThinking = 24,
        msoAnimationSendingMail = 25,
        msoAnimationListensToComputer = 26,
        msoAnimationDisappear = 31,
        msoAnimationAppear = 32,
        msoAnimationGetArtsy = 100,
        msoAnimationGetTechy = 101,
        msoAnimationGetWizardy = 102,
        msoAnimationCheckingSomething = 103,
        msoAnimationLookDown = 104,
        msoAnimationLookDownLeft = 105,
        msoAnimationLookDownRight = 106,
        msoAnimationLookLeft = 107,
        msoAnimationLookRight = 108,
        msoAnimationLookUp = 109,
        msoAnimationLookUpLeft = 110,
        msoAnimationLookUpRight = 111,
        msoAnimationSaving = 112,
        msoAnimationGestureDown = 113,
        msoAnimationGestureLeft = 114,
        msoAnimationGestureUp = 115,
        msoAnimationEmptyTrash = 116
    } MsoAnimationType;

    typedef enum {
        msoButtonSetNone = 0,
        msoButtonSetOK = 1,
        msoButtonSetCancel = 2,
        msoButtonSetOkCancel = 3,
        msoButtonSetYesNo = 4,
        msoButtonSetYesNoCancel = 5,
        msoButtonSetBackClose = 6,
        msoButtonSetNextClose = 7,
        msoButtonSetBackNextClose = 8,
        msoButtonSetRetryCancel = 9,
        msoButtonSetAbortRetryIgnore = 10,
        msoButtonSetSearchClose = 11,
        msoButtonSetBackNextSnooze = 12,
        msoButtonSetTipsOptionsClose = 13,
        msoButtonSetYesAllNoCancel = 14
    } MsoButtonSetType;

    typedef enum {
        msoIconNone = 0,
        msoIconAlert = 2,
        msoIconTip = 3,
        msoIconAlertInfo = 4,
        msoIconAlertWarning = 5,
        msoIconAlertQuery = 6,
        msoIconAlertCritical = 7
    } MsoIconType;

    typedef enum {
        msoBalloonTypeButtons = 0,
        msoBalloonTypeBullets = 1,
        msoBalloonTypeNumbers = 2
    } MsoBalloonType;

    typedef enum {
        msoModeModal = 0,
        msoModeAutoDown = 1,
        msoModeModeless = 2
    } MsoModeType;

    typedef enum {
        msoBalloonErrorNone = 0,
        msoBalloonErrorOther = 1,
        msoBalloonErrorTooBig = 2,
        msoBalloonErrorOutOfMemory = 3,
        msoBalloonErrorBadPictureRef = 4,
        msoBalloonErrorBadReference = 5,
        msoBalloonErrorButtonlessModal = 6,
        msoBalloonErrorButtonModeless = 7,
        msoBalloonErrorBadCharacter = 8,
        msoBalloonErrorCOMFailure = 9,
        msoBalloonErrorCharNotTopmostForModal = 10,
        msoBalloonErrorTooManyControls = 11
    } MsoBalloonErrorType;

    typedef enum {
        msoWizardActInactive = 0,
        msoWizardActActive = 1,
        msoWizardActSuspend = 2,
        msoWizardActResume = 3
    } MsoWizardActType;

    typedef enum {
        msoWizardMsgLocalStateOn = 1,
        msoWizardMsgLocalStateOff = 2,
        msoWizardMsgShowHelp = 3,
        msoWizardMsgSuspending = 4,
        msoWizardMsgResuming = 5
    } MsoWizardMsgType;

    typedef enum {
        msoBalloonButtonYesToAll = 0xfffffff1,
        msoBalloonButtonOptions = 0xfffffff2,
        msoBalloonButtonTips = 0xfffffff3,
        msoBalloonButtonClose = 0xfffffff4,
        msoBalloonButtonSnooze = 0xfffffff5,
        msoBalloonButtonSearch = 0xfffffff6,
        msoBalloonButtonIgnore = 0xfffffff7,
        msoBalloonButtonAbort = 0xfffffff8,
        msoBalloonButtonRetry = 0xfffffff9,
        msoBalloonButtonNext = 0xfffffffa,
        msoBalloonButtonBack = 0xfffffffb,
        msoBalloonButtonNo = 0xfffffffc,
        msoBalloonButtonYes = 0xfffffffd,
        msoBalloonButtonCancel = 0xfffffffe,
        msoBalloonButtonOK = 0xffffffff,
        msoBalloonButtonNull = 0
    } MsoBalloonButtonType;

    typedef enum {
        offPropertyTypeNumber = 1,
        offPropertyTypeBoolean = 2,
        offPropertyTypeDate = 3,
        offPropertyTypeString = 4,
        offPropertyTypeFloat = 5
    } DocProperties;

    typedef enum {
        msoPropertyTypeNumber = 1,
        msoPropertyTypeBoolean = 2,
        msoPropertyTypeDate = 3,
        msoPropertyTypeString = 4,
        msoPropertyTypeFloat = 5
    } MsoDocProperties;

    typedef enum {
        msoLanguageIDInstall = 1,
        msoLanguageIDUI = 2,
        msoLanguageIDHelp = 3,
        msoLanguageIDExeMode = 4,
        msoLanguageIDUIPrevious = 5
    } MsoAppLanguageID;

    typedef enum {
        MsoFarEastLineBreakLanguageJapanese = 1041,
        MsoFarEastLineBreakLanguageKorean = 1042,
        MsoFarEastLineBreakLanguageSimplifiedChinese = 2052,
        MsoFarEastLineBreakLanguageTraditionalChinese = 1028
    } MsoFarEastLineBreakLanguageID;

    typedef enum {
        msoFeatureInstallNone = 0,
        msoFeatureInstallOnDemand = 1,
        msoFeatureInstallOnDemandWithUI = 2
    } MsoFeatureInstall;

        typedef enum {
        msoOrgChartOrientationMixed = 0xfffffffe,
        msoOrgChartOrientationVertical = 1
    } MsoOrgChartOrientation;

    typedef enum {
        msoOrgChartLayoutMixed = 0xfffffffe,
        msoOrgChartLayoutStandard = 1,
        msoOrgChartLayoutBothHanging = 2,
        msoOrgChartLayoutLeftHanging = 3,
        msoOrgChartLayoutRightHanging = 4
    } MsoOrgChartLayoutType;

    typedef enum {
        msoBeforeNode = 1,
        msoAfterNode = 2,
        msoBeforeFirstSibling = 3,
        msoAfterLastSibling = 4
    } MsoRelativeNodePosition;

    typedef enum {
        msoDiagramMixed = 0xfffffffe,
        msoDiagramOrgChart = 1,
        msoDiagramCycle = 2,
        msoDiagramRadial = 3,
        msoDiagramPyramid = 4,
        msoDiagramVenn = 5,
        msoDiagramTarget = 6
    } MsoDiagramType;

    typedef enum {
        msoDiagramNode = 1,
        msoDiagramAssistant = 2
    } MsoDiagramNodeType;

     typedef enum {
        msoAlertButtonOK = 0,
        msoAlertButtonOKCancel = 1,
        msoAlertButtonAbortRetryIgnore = 2,
        msoAlertButtonYesNoCancel = 3,
        msoAlertButtonYesNo = 4,
        msoAlertButtonRetryCancel = 5,
        msoAlertButtonYesAllNoCancel = 6
    } MsoAlertButtonType;

    typedef enum {
        msoAlertIconNoIcon = 0,
        msoAlertIconCritical = 1,
        msoAlertIconQuery = 2,
        msoAlertIconWarning = 3,
        msoAlertIconInfo = 4
    } MsoAlertIconType;

    typedef enum {
        msoAlertDefaultFirst = 0,
        msoAlertDefaultSecond = 1,
        msoAlertDefaultThird = 2,
        msoAlertDefaultFourth = 3,
        msoAlertDefaultFifth = 4
    } MsoAlertDefaultType;

    typedef enum {
        msoAlertCancelDefault = 0xffffffff,
        msoAlertCancelFirst = 0,
        msoAlertCancelSecond = 1,
        msoAlertCancelThird = 2,
        msoAlertCancelFourth = 3,
        msoAlertCancelFifth = 4
    } MsoAlertCancelType;

    typedef enum {
        msoSearchInMyComputer = 0,
        msoSearchInOutlook = 1,
        msoSearchInMyNetworkPlaces = 2,
        msoSearchInCustom = 3
    } MsoSearchIn;

    typedef enum {
        msoTargetBrowserV3 = 0,
        msoTargetBrowserV4 = 1,
        msoTargetBrowserIE4 = 2,
        msoTargetBrowserIE5 = 3,
        msoTargetBrowserIE6 = 4
    } MsoTargetBrowser;

   [
      odl,
      uuid(618736E0-3C3D-11CF-810C-00AA00389B71),
      hidden,
      dual,
      oleautomation
    ]
    interface IAccessible2 : IDispatch {
        [id(0xffffec78), propget, hidden]
        HRESULT accParent([out, retval] IDispatch** ppdispParent);
        [id(0xffffec77), propget, hidden]
        HRESULT accChildCount([out, retval] long* pcountChildren);
        [id(0xffffec76), propget, hidden]
        HRESULT accChild(
                        [in] VARIANT varChild, 
                        [out, retval] IDispatch** ppdispChild);
        [id(0xffffec75), propget, hidden]
        HRESULT accName(
                        [in, optional] VARIANT varChild, 
                        [out, retval] BSTR* pszName);
        [id(0xffffec74), propget, hidden]
        HRESULT accValue(
                        [in, optional] VARIANT varChild, 
                        [out, retval] BSTR* pszValue);
        [id(0xffffec73), propget, hidden]
        HRESULT accDescription(
                        [in, optional] VARIANT varChild, 
                        [out, retval] BSTR* pszDescription);
        [id(0xffffec72), propget, hidden]
        HRESULT accRole(
                        [in, optional] VARIANT varChild, 
                        [out, retval] VARIANT* pvarRole);
        [id(0xffffec71), propget, hidden]
        HRESULT accState(
                        [in, optional] VARIANT varChild, 
                        [out, retval] VARIANT* pvarState);
        [id(0xffffec70), propget, hidden]
        HRESULT accHelp(
                        [in, optional] VARIANT varChild, 
                        [out, retval] BSTR* pszHelp);
        [id(0xffffec6f), propget, hidden]
        HRESULT accHelpTopic(
                        [out] BSTR* pszHelpFile, 
                        [in, optional] VARIANT varChild, 
                        [out, retval] long* pidTopic);
        [id(0xffffec6e), propget, hidden]
        HRESULT accKeyboardShortcut(
                        [in, optional] VARIANT varChild, 
                        [out, retval] BSTR* pszKeyboardShortcut);
        [id(0xffffec6d), propget, hidden]
        HRESULT accFocus([out, retval] VARIANT* pvarChild);
        [id(0xffffec6c), propget, hidden]
        HRESULT accSelection([out, retval] VARIANT* pvarChildren);
        [id(0xffffec6b), propget, hidden]
        HRESULT accDefaultAction(
                        [in, optional] VARIANT varChild, 
                        [out, retval] BSTR* pszDefaultAction);
        [id(0xffffec6a), hidden]
        HRESULT accSelect(
                        [in] long flagsSelect, 
                        [in, optional] VARIANT varChild);
        [id(0xffffec69), hidden]
        HRESULT accLocation(
                        [out] long* pxLeft, 
                        [out] long* pyTop, 
                        [out] long* pcxWidth, 
                        [out] long* pcyHeight, 
                        [in, optional] VARIANT varChild);
        [id(0xffffec68), hidden]
        HRESULT accNavigate(
                        [in] long navDir, 
                        [in, optional] VARIANT varStart, 
                        [out, retval] VARIANT* pvarEndUpAt);
        [id(0xffffec67), hidden]
        HRESULT accHitTest(
                        [in] long xLeft, 
                        [in] long yTop, 
                        [out, retval] VARIANT* pvarChild);
        [id(0xffffec66), hidden]
        HRESULT accDoDefaultAction([in, optional] VARIANT varChild);
        [id(0xffffec75), propput, hidden]
        HRESULT accName(
                        [in, optional] VARIANT varChild, 
                        [in] BSTR pszName);
        [id(0xffffec74), propput, hidden]
        HRESULT accValue(
                        [in, optional] VARIANT varChild, 
                        [in] BSTR pszValue);
    };

    [
      odl,
      uuid(000C0300-0000-0000-C000-000000000046),
      hidden,
      dual,
      nonextensible,
      oleautomation
    ]
    interface _IMsoDispObj : IDispatch {
        [id(0x60020000), propget, helpcontext(0x000003e9)]
        HRESULT Application([out, retval] IDispatch** ppidisp);
        [id(0x60020001), propget, helpcontext(0x000003ea)]
        HRESULT Creator([out, retval] long* plCreator);
    };

    [
      odl,
      uuid(000C0301-0000-0000-C000-000000000046),
      hidden,
      dual,
      nonextensible,
      oleautomation
    ]
    interface _IMsoOleAccDispObj : IAccessible2 {
        [id(0x60030000), propget, helpcontext(0x000003e9)]
        HRESULT Application([out, retval] IDispatch** ppidisp);
        [id(0x60030001), propget, helpcontext(0x000003ea)]
        HRESULT Creator([out, retval] long* plCreator);
    };

    [
      odl,
      uuid(000C0302-0000-0000-C000-000000000046),
      helpcontext(0x000007d0),
      dual,
      nonextensible,
      oleautomation
    ]
    interface _CommandBars : _IMsoDispObj {
        [id(0x60030000), propget, helpcontext(0x000007d1)]
        HRESULT ActionControl([out, retval] CommandBarControl** ppcbc);
        [id(0x60030001), propget, helpcontext(0x000007d2)]
        HRESULT ActiveMenuBar([out, retval] CommandBar** ppcb);
        [id(0x60030002), helpcontext(0x000007d3)]
        HRESULT Add(
                        [in, optional] VARIANT Name, 
                        [in, optional] VARIANT Position, 
                        [in, optional] VARIANT MenuBar, 
                        [in, optional] VARIANT Temporary, 
                        [out, retval] CommandBar** ppcb);
        [id(0x60030003), propget, helpcontext(0x000007d4)]
        HRESULT Count([out, retval] int* pcToolbars);
        [id(0x60030004), propget, helpcontext(0x000007d5)]
        HRESULT DisplayTooltips([out, retval] VARIANT_BOOL* pvarfDisplayTooltips);
        [id(0x60030004), propput, helpcontext(0x000007d5)]
        HRESULT DisplayTooltips([in] VARIANT_BOOL pvarfDisplayTooltips);
        [id(0x60030006), propget, helpcontext(0x000007d6)]
        HRESULT DisplayKeysInTooltips([out, retval] VARIANT_BOOL* pvarfDisplayKeys);
        [id(0x60030006), propput, helpcontext(0x000007d6)]
        HRESULT DisplayKeysInTooltips([in] VARIANT_BOOL pvarfDisplayKeys);
        [id(0x60030008), helpcontext(0x000007d7)]
        HRESULT FindControl(
                        [in, optional] VARIANT Type, 
                        [in, optional] VARIANT Id, 
                        [in, optional] VARIANT Tag, 
                        [in, optional] VARIANT Visible, 
                        [out, retval] CommandBarControl** ppcbc);
        [id(00000000), propget, helpcontext(0x000007d8)]
        HRESULT Item(
                        [in] VARIANT Index, 
                        [out, retval] CommandBar** ppcb);
        [id(0x6003000a), propget, helpcontext(0x000007d9)]
        HRESULT LargeButtons([out, retval] VARIANT_BOOL* pvarfLargeButtons);
        [id(0x6003000a), propput, helpcontext(0x000007d9)]
        HRESULT LargeButtons([in] VARIANT_BOOL pvarfLargeButtons);
        [id(0x6003000c), propget, helpcontext(0x000007da)]
        HRESULT MenuAnimationStyle([out, retval] MsoMenuAnimation* pma);
        [id(0x6003000c), propput, helpcontext(0x000007da)]
        HRESULT MenuAnimationStyle([in] MsoMenuAnimation pma);
        [id(0xfffffffc), propget]
        HRESULT _NewEnum([out, retval] IUnknown** ppienum);
        [id(0x6003000f), propget, helpcontext(0x000007db)]
        HRESULT Parent([out, retval] IDispatch** ppidisp);
        [id(0x60030010), helpcontext(0x000007dc)]
        HRESULT ReleaseFocus();
        [id(0x60030011), propget, hidden]
        HRESULT IdsString(
                        [in] int ids, 
                        [out] BSTR* pbstrName, 
                        [out, retval] int* pcch);
        [id(0x60030012), propget, hidden]
        HRESULT TmcGetName(
                        [in] int tmc, 
                        [out] BSTR* pbstrName, 
                        [out, retval] int* pcch);
        [id(0x60030013), propget, helpcontext(0x000007dd)]
        HRESULT AdaptiveMenus([out, retval] VARIANT_BOOL* pvarfAdaptiveMenus);
        [id(0x60030013), propput, helpcontext(0x000007dd)]
        HRESULT AdaptiveMenus([in] VARIANT_BOOL pvarfAdaptiveMenus);
        [id(0x60030015), helpcontext(0x000007de)]
        HRESULT FindControls(
                        [in, optional] VARIANT Type, 
                        [in, optional] VARIANT Id, 
                        [in, optional] VARIANT Tag, 
                        [in, optional] VARIANT Visible, 
                        [out, retval] CommandBarControls** ppcbcs);
        [id(0x60030016), hidden]
        HRESULT AddEx(
                        [in, optional] VARIANT TbidOrName, 
                        [in, optional] VARIANT Position, 
                        [in, optional] VARIANT MenuBar, 
                        [in, optional] VARIANT Temporary, 
                        [in, optional] VARIANT TbtrProtection, 
                        [out, retval] CommandBar** ppcb);
        [id(0x60030017), propget, helpcontext(0x000007df)]
        HRESULT DisplayFonts([out, retval] VARIANT_BOOL* pvarfDisplayFonts);
        [id(0x60030017), propput, helpcontext(0x000007df)]
        HRESULT DisplayFonts([in] VARIANT_BOOL pvarfDisplayFonts);
        [id(0x60030019), propget, helpcontext(0x000007e0)]
        HRESULT DisableCustomize([out, retval] VARIANT_BOOL* pvarfDisableCustomize);
        [id(0x60030019), propput, helpcontext(0x000007e0)]
        HRESULT DisableCustomize([in] VARIANT_BOOL pvarfDisableCustomize);
        [id(0x6003001b), propget, helpcontext(0x000007e1)]
        HRESULT DisableAskAQuestionDropdown([out, retval] VARIANT_BOOL* pvarfDisableAskAQuestionDropdown);
        [id(0x6003001b), propput, helpcontext(0x000007e1)]
        HRESULT DisableAskAQuestionDropdown([in] VARIANT_BOOL pvarfDisableAskAQuestionDropdown);
    };

    [
      odl,
      uuid(000C0304-0000-0000-C000-000000000046),
      helpcontext(0x00000bb8),
      dual,
      nonextensible,
      oleautomation
    ]
    interface CommandBar : _IMsoOleAccDispObj {
        [id(0x60040000), propget, helpcontext(0x00000bb9)]
        HRESULT BuiltIn([out, retval] VARIANT_BOOL* pvarfBuiltIn);
        [id(0x60040001), propget, helpcontext(0x00000bba)]
        HRESULT Context([out, retval] BSTR* pbstrContext);
        [id(0x60040001), propput, helpcontext(0x00000bba)]
        HRESULT Context([in] BSTR pbstrContext);
        [id(0x60040003), propget, helpcontext(0x00000bbb)]
        HRESULT Controls([out, retval] CommandBarControls** ppcbcs);
        [id(0x60040004), helpcontext(0x00000bbc)]
        HRESULT Delete();
        [id(0x60040005), propget, helpcontext(0x00000bbd)]
        HRESULT Enabled([out, retval] VARIANT_BOOL* pvarfEnabled);
        [id(0x60040005), propput, helpcontext(0x00000bbd)]
        HRESULT Enabled([in] VARIANT_BOOL pvarfEnabled);
        [id(0x60040007), helpcontext(0x00000bbe)]
        HRESULT FindControl(
                        [in, optional] VARIANT Type, 
                        [in, optional] VARIANT Id, 
                        [in, optional] VARIANT Tag, 
                        [in, optional] VARIANT Visible, 
                        [in, optional] VARIANT Recursive, 
                        [out, retval] CommandBarControl** ppcbc);
        [id(0x60040008), propget, helpcontext(0x00000bbf)]
        HRESULT Height([out, retval] int* pdy);
        [id(0x60040008), propput, helpcontext(0x00000bbf)]
        HRESULT Height([in] int pdy);
        [id(0x6004000a), propget, helpcontext(0x00000bc0)]
        HRESULT Index([out, retval] int* pi);
        [id(0x6004000b), propget, hidden]
        HRESULT InstanceId([out, retval] long* pid);
        [id(0x6004000c), propget, helpcontext(0x00000bc1)]
        HRESULT Left([out, retval] int* pxpLeft);
        [id(0x6004000c), propput, helpcontext(0x00000bc1)]
        HRESULT Left([in] int pxpLeft);
        [id(0x6004000e), propget, helpcontext(0x00000bc2)]
        HRESULT Name([out, retval] BSTR* pbstrName);
        [id(0x6004000e), propput, helpcontext(0x00000bc2)]
        HRESULT Name([in] BSTR pbstrName);
        [id(0x60040010), propget, helpcontext(0x00000bc3)]
        HRESULT NameLocal([out, retval] BSTR* pbstrNameLocal);
        [id(0x60040010), propput, helpcontext(0x00000bc3)]
        HRESULT NameLocal([in] BSTR pbstrNameLocal);
        [id(0x60040012), propget, helpcontext(0x00000bc4)]
        HRESULT Parent([out, retval] IDispatch** ppidisp);
        [id(0x60040013), propget, helpcontext(0x00000bc5)]
        HRESULT Position([out, retval] MsoBarPosition* ppos);
        [id(0x60040013), propput, helpcontext(0x00000bc5)]
        HRESULT Position([in] MsoBarPosition ppos);
        [id(0x60040015), propget, helpcontext(0x00000bc6)]
        HRESULT RowIndex([out, retval] int* piRow);
        [id(0x60040015), propput, helpcontext(0x00000bc6)]
        HRESULT RowIndex([in] int piRow);
        [id(0x60040017), propget, helpcontext(0x00000bc7)]
        HRESULT Protection([out, retval] MsoBarProtection* pprot);
        [id(0x60040017), propput, helpcontext(0x00000bc7)]
        HRESULT Protection([in] MsoBarProtection pprot);
        [id(0x60040019), helpcontext(0x00000bc8)]
        HRESULT Reset();
        [id(0x6004001a), helpcontext(0x00000bc9)]
        HRESULT ShowPopup(
                        [in, optional] VARIANT x, 
                        [in, optional] VARIANT y);
        [id(0x6004001b), propget, helpcontext(0x00000bca)]
        HRESULT Top([out, retval] int* pypTop);
        [id(0x6004001b), propput, helpcontext(0x00000bca)]
        HRESULT Top([in] int pypTop);
        [id(0x6004001d), propget, helpcontext(0x00000bcb)]
        HRESULT Type([out, retval] MsoBarType* ptype);
        [id(0x6004001e), propget, helpcontext(0x00000bcc)]
        HRESULT Visible([out, retval] VARIANT_BOOL* pvarfVisible);
        [id(0x6004001e), propput, helpcontext(0x00000bcc)]
        HRESULT Visible([in] VARIANT_BOOL pvarfVisible);
        [id(0x60040020), propget, helpcontext(0x00000bcd)]
        HRESULT Width([out, retval] int* pdx);
        [id(0x60040020), propput, helpcontext(0x00000bcd)]
        HRESULT Width([in] int pdx);
        [id(0x60040022), propget, helpcontext(0x00000bce)]
        HRESULT AdaptiveMenu([out, retval] VARIANT_BOOL* pvarfAdaptiveMenu);
        [id(0x60040022), propput, helpcontext(0x00000bce)]
        HRESULT AdaptiveMenu([in] VARIANT_BOOL pvarfAdaptiveMenu);
        [id(0x60040024), propget, hidden]
        HRESULT Id([out, retval] int* pid);
    };

    [
      odl,
      uuid(000C0306-0000-0000-C000-000000000046),
      helpcontext(0x00000fa0),
      dual,
      nonextensible,
      oleautomation
    ]
    interface CommandBarControls : _IMsoDispObj {
        [id(0x60030000), helpcontext(0x00000fa1)]
        HRESULT Add(
                        [in, optional] VARIANT Type, 
                        [in, optional] VARIANT Id, 
                        [in, optional] VARIANT Parameter, 
                        [in, optional] VARIANT Before, 
                        [in, optional] VARIANT Temporary, 
                        [out, retval] CommandBarControl** ppcbc);
        [id(0x60030001), propget, helpcontext(0x00000fa2)]
        HRESULT Count([out, retval] int* pcToolbarControls);
        [id(00000000), propget, helpcontext(0x00000fa3)]
        HRESULT Item(
                        [in] VARIANT Index, 
                        [out, retval] CommandBarControl** ppcbc);
        [id(0xfffffffc), propget]
        HRESULT _NewEnum([out, retval] IUnknown** ppienum);
        [id(0x60030004), propget, helpcontext(0x00000fa4)]
        HRESULT Parent([out, retval] CommandBar** ppcb);
    };

    [
      odl,
      uuid(000C0308-0000-0000-C000-000000000046),
      helpcontext(0x00001388),
      dual,
      oleautomation
    ]
    interface CommandBarControl : _IMsoOleAccDispObj {
        [id(0x60040000), propget, helpcontext(0x00001389)]
        HRESULT BeginGroup([out, retval] VARIANT_BOOL* pvarfBeginGroup);
        [id(0x60040000), propput, helpcontext(0x00001389)]
        HRESULT BeginGroup([in] VARIANT_BOOL pvarfBeginGroup);
        [id(0x60040002), propget, helpcontext(0x0000138a)]
        HRESULT BuiltIn([out, retval] VARIANT_BOOL* pvarfBuiltIn);
        [id(0x60040003), propget, helpcontext(0x0000138b)]
        HRESULT Caption([out, retval] BSTR* pbstrCaption);
        [id(0x60040003), propput, helpcontext(0x0000138b)]
        HRESULT Caption([in] BSTR pbstrCaption);
        [id(0x60040005), propget, hidden]
        HRESULT Control([out, retval] IDispatch** ppidisp);
        [id(0x60040006), helpcontext(0x0000138c)]
        HRESULT Copy(
                        [in, optional] VARIANT Bar, 
                        [in, optional] VARIANT Before, 
                        [out, retval] CommandBarControl** ppcbc);
        [id(0x60040007), helpcontext(0x0000138d)]
        HRESULT Delete([in, optional] VARIANT Temporary);
        [id(0x60040008), propget, helpcontext(0x0000138e)]
        HRESULT DescriptionText([out, retval] BSTR* pbstrText);
        [id(0x60040008), propput, helpcontext(0x0000138e)]
        HRESULT DescriptionText([in] BSTR pbstrText);
        [id(0x6004000a), propget, helpcontext(0x0000138f)]
        HRESULT Enabled([out, retval] VARIANT_BOOL* pvarfEnabled);
        [id(0x6004000a), propput, helpcontext(0x0000138f)]
        HRESULT Enabled([in] VARIANT_BOOL pvarfEnabled);
        [id(0x6004000c), helpcontext(0x00001390)]
        HRESULT Execute();
        [id(0x6004000d), propget, helpcontext(0x00001391)]
        HRESULT Height([out, retval] int* pdy);
        [id(0x6004000d), propput, helpcontext(0x00001391)]
        HRESULT Height([in] int pdy);
        [id(0x6004000f), propget, helpcontext(0x00001392)]
        HRESULT HelpContextId([out, retval] int* pid);
        [id(0x6004000f), propput, helpcontext(0x00001392)]
        HRESULT HelpContextId([in] int pid);
        [id(0x60040011), propget, helpcontext(0x00001393)]
        HRESULT HelpFile([out, retval] BSTR* pbstrFilename);
        [id(0x60040011), propput, helpcontext(0x00001393)]
        HRESULT HelpFile([in] BSTR pbstrFilename);
        [id(0x60040013), propget, helpcontext(0x00001394)]
        HRESULT Id([out, retval] int* pid);
        [id(0x60040014), propget, helpcontext(0x00001395)]
        HRESULT Index([out, retval] int* pi);
        [id(0x60040015), propget, hidden]
        HRESULT InstanceId([out, retval] long* pid);
        [id(0x60040016), helpcontext(0x00001396)]
        HRESULT Move(
                        [in, optional] VARIANT Bar, 
                        [in, optional] VARIANT Before, 
                        [out, retval] CommandBarControl** ppcbc);
        [id(0x60040017), propget, helpcontext(0x00001397)]
        HRESULT Left([out, retval] int* px);
        [id(0x60040018), propget, helpcontext(0x00001398)]
        HRESULT OLEUsage([out, retval] MsoControlOLEUsage* pcou);
        [id(0x60040018), propput, helpcontext(0x00001398)]
        HRESULT OLEUsage([in] MsoControlOLEUsage pcou);
        [id(0x6004001a), propget, helpcontext(0x00001399)]
        HRESULT OnAction([out, retval] BSTR* pbstrOnAction);
        [id(0x6004001a), propput, helpcontext(0x00001399)]
        HRESULT OnAction([in] BSTR pbstrOnAction);
        [id(0x6004001c), propget, helpcontext(0x0000139a)]
        HRESULT Parent([out, retval] CommandBar** ppcb);
        [id(0x6004001d), propget, helpcontext(0x0000139b)]
        HRESULT Parameter([out, retval] BSTR* pbstrParam);
        [id(0x6004001d), propput, helpcontext(0x0000139b)]
        HRESULT Parameter([in] BSTR pbstrParam);
        [id(0x6004001f), propget, helpcontext(0x0000139c)]
        HRESULT Priority([out, retval] int* pnPri);
        [id(0x6004001f), propput, helpcontext(0x0000139c)]
        HRESULT Priority([in] int pnPri);
        [id(0x60040021), helpcontext(0x0000139d)]
        HRESULT Reset();
        [id(0x60040022), helpcontext(0x0000139e)]
        HRESULT SetFocus();
        [id(0x60040023), propget, helpcontext(0x0000139f)]
        HRESULT Tag([out, retval] BSTR* pbstrTag);
        [id(0x60040023), propput, helpcontext(0x0000139f)]
        HRESULT Tag([in] BSTR pbstrTag);
        [id(0x60040025), propget, helpcontext(0x000013a0)]
        HRESULT TooltipText([out, retval] BSTR* pbstrTooltip);
        [id(0x60040025), propput, helpcontext(0x000013a0)]
        HRESULT TooltipText([in] BSTR pbstrTooltip);
        [id(0x60040027), propget, helpcontext(0x000013a1)]
        HRESULT Top([out, retval] int* py);
        [id(0x60040028), propget, helpcontext(0x000013a2)]
        HRESULT Type([out, retval] MsoControlType* ptype);
        [id(0x60040029), propget, helpcontext(0x000013a3)]
        HRESULT Visible([out, retval] VARIANT_BOOL* pvarfVisible);
        [id(0x60040029), propput, helpcontext(0x000013a3)]
        HRESULT Visible([in] VARIANT_BOOL pvarfVisible);
        [id(0x6004002b), propget, helpcontext(0x000013a4)]
        HRESULT Width([out, retval] int* pdx);
        [id(0x6004002b), propput, helpcontext(0x000013a4)]
        HRESULT Width([in] int pdx);
        [id(0x6004002d), propget, helpcontext(0x000013a5)]
        HRESULT IsPriorityDropped([out, retval] VARIANT_BOOL* pvarfDropped);
        [id(0x6004002e), hidden]
        HRESULT Reserved1();
        [id(0x6004002f), hidden]
        HRESULT Reserved2();
        [id(0x60040030), hidden]
        HRESULT Reserved3();
        [id(0x60040031), hidden]
        HRESULT Reserved4();
        [id(0x60040032), hidden]
        HRESULT Reserved5();
        [id(0x60040033), hidden]
        HRESULT Reserved6();
        [id(0x60040034), hidden]
        HRESULT Reserved7();
    };

    [
      odl,
      uuid(000C030E-0000-0000-C000-000000000046),
      helpcontext(0x00001770),
      hidden,
      dual,
      nonextensible,
      oleautomation
    ]
    interface _CommandBarButton : CommandBarControl {
        [id(0x60050000), propget, helpcontext(0x00001771)]
        HRESULT BuiltInFace([out, retval] VARIANT_BOOL* pvarfBuiltIn);
        [id(0x60050000), propput, helpcontext(0x00001771)]
        HRESULT BuiltInFace([in] VARIANT_BOOL pvarfBuiltIn);
        [id(0x60050002), helpcontext(0x00001772)]
        HRESULT CopyFace();
        [id(0x60050003), propget, helpcontext(0x00001773)]
        HRESULT FaceId([out, retval] int* pid);
        [id(0x60050003), propput, helpcontext(0x00001773)]
        HRESULT FaceId([in] int pid);
        [id(0x60050005), helpcontext(0x00001774)]
        HRESULT PasteFace();
        [id(0x60050006), propget, helpcontext(0x00001775)]
        HRESULT ShortcutText([out, retval] BSTR* pbstrText);
        [id(0x60050006), propput, helpcontext(0x00001775)]
        HRESULT ShortcutText([in] BSTR pbstrText);
        [id(0x60050008), propget, helpcontext(0x00001776)]
        HRESULT State([out, retval] MsoButtonState* pstate);
        [id(0x60050008), propput, helpcontext(0x00001776)]
        HRESULT State([in] MsoButtonState pstate);
        [id(0x6005000a), propget, helpcontext(0x00001777)]
        HRESULT Style([out, retval] MsoButtonStyle* pstyle);
        [id(0x6005000a), propput, helpcontext(0x00001777)]
        HRESULT Style([in] MsoButtonStyle pstyle);
        [id(0x6005000c), propget, helpcontext(0x00001778)]
        HRESULT HyperlinkType([out, retval] MsoCommandBarButtonHyperlinkType* phlType);
        [id(0x6005000c), propput, helpcontext(0x00001778)]
        HRESULT HyperlinkType([in] MsoCommandBarButtonHyperlinkType phlType);
        [id(0x6005000e), propget, helpcontext(0x00001779)]
        HRESULT Picture([out, retval] IPictureDisp** ppdispPicture);
        [id(0x6005000e), propput, helpcontext(0x00001779)]
        HRESULT Picture([in] IPictureDisp* ppdispPicture);
        [id(0x60050010), propget, helpcontext(0x0000177a)]
        HRESULT Mask([out, retval] IPictureDisp** ppipictdispMask);
        [id(0x60050010), propput, helpcontext(0x0000177a)]
        HRESULT Mask([in] IPictureDisp* ppipictdispMask);
    };

    [
      odl,
      uuid(000C030A-0000-0000-C000-000000000046),
      helpcontext(0x00001b58),
      dual,
      nonextensible,
      oleautomation
    ]
    interface CommandBarPopup : CommandBarControl {
        [id(0x60050000), propget, helpcontext(0x00001b59)]
        HRESULT CommandBar([out, retval] CommandBar** ppcb);
        [id(0x60050001), propget, helpcontext(0x00001b5a)]
        HRESULT Controls([out, retval] CommandBarControls** ppcbcs);
        [id(0x60050002), propget, helpcontext(0x00001b5b)]
        HRESULT OLEMenuGroup([out, retval] MsoOLEMenuGroup* pomg);
        [id(0x60050002), propput, helpcontext(0x00001b5b)]
        HRESULT OLEMenuGroup([in] MsoOLEMenuGroup pomg);
    };

    [
      odl,
      uuid(000C030C-0000-0000-C000-000000000046),
      helpcontext(0x00001f40),
      dual,
      nonextensible,
      oleautomation
    ]
    interface _CommandBarComboBox : CommandBarControl {
        [id(0x60050000), helpcontext(0x00001f41)]
        HRESULT AddItem(
                        [in] BSTR Text, 
                        [in, optional] VARIANT Index);
        [id(0x60050001), helpcontext(0x00001f42)]
        HRESULT Clear();
        [id(0x60050002), propget, helpcontext(0x00001f43)]
        HRESULT DropDownLines([out, retval] int* pcLines);
        [id(0x60050002), propput, helpcontext(0x00001f43)]
        HRESULT DropDownLines([in] int pcLines);
        [id(0x60050004), propget, helpcontext(0x00001f44)]
        HRESULT DropDownWidth([out, retval] int* pdx);
        [id(0x60050004), propput, helpcontext(0x00001f44)]
        HRESULT DropDownWidth([in] int pdx);
        [id(0x60050006), propget, helpcontext(0x00001f45)]
        HRESULT List(
                        [in] int Index, 
                        [out, retval] BSTR* pbstrItem);
        [id(0x60050006), propput, helpcontext(0x00001f45)]
        HRESULT List(
                        [in] int Index, 
                        [in] BSTR pbstrItem);
        [id(0x60050008), propget, helpcontext(0x00001f46)]
        HRESULT ListCount([out, retval] int* pcItems);
        [id(0x60050009), propget, helpcontext(0x00001f47)]
        HRESULT ListHeaderCount([out, retval] int* pcItems);
        [id(0x60050009), propput, helpcontext(0x00001f47)]
        HRESULT ListHeaderCount([in] int pcItems);
        [id(0x6005000b), propget, helpcontext(0x00001f48)]
        HRESULT ListIndex([out, retval] int* pi);
        [id(0x6005000b), propput, helpcontext(0x00001f48)]
        HRESULT ListIndex([in] int pi);
        [id(0x6005000d), helpcontext(0x00001f49)]
        HRESULT RemoveItem([in] int Index);
        [id(0x6005000e), propget, helpcontext(0x00001f4a)]
        HRESULT Style([out, retval] MsoComboStyle* pstyle);
        [id(0x6005000e), propput, helpcontext(0x00001f4a)]
        HRESULT Style([in] MsoComboStyle pstyle);
        [id(0x60050010), propget, helpcontext(0x00001f4b)]
        HRESULT Text([out, retval] BSTR* pbstrText);
        [id(0x60050010), propput, helpcontext(0x00001f4b)]
        HRESULT Text([in] BSTR pbstrText);
    };

    [
      odl,
      uuid(000C030D-0000-0000-C000-000000000046),
      helpcontext(0x00002328),
      dual,
      nonextensible,
      oleautomation
    ]
    interface _CommandBarActiveX : CommandBarControl {
        [id(0x60050000), propget, helpcontext(0x00002329)]
        HRESULT ControlCLSID([out, retval] BSTR* pbstrClsid);
        [id(0x60050000), propput, helpcontext(0x00002329)]
        HRESULT ControlCLSID([in] BSTR pbstrClsid);
        [id(0x60050002), propget, helpcontext(0x0000232a)]
        HRESULT QueryControlInterface(
                        [in] BSTR bstrIid, 
                        [out, retval] IUnknown** ppUnk);
        [id(0x60050003), helpcontext(0x0000232b)]
        HRESULT SetInnerObjectFactory([in] IUnknown* pUnk);
        [id(0x60050004), helpcontext(0x0000232c)]
        HRESULT EnsureControl();
        [id(0x60050005), propput, helpcontext(0x0000232d)]
        HRESULT InitWith([in] IUnknown* rhs);
    };

    [
      odl,
      uuid(000C0310-0000-0000-C000-000000000046),
      hidden,
      dual,
      nonextensible,
      oleautomation
    ]
    interface Adjustments : _IMsoDispObj {
        [id(0x00000001), propget]
        HRESULT Parent([out, retval] IDispatch** Parent);
        [id(0x00000002), propget]
        HRESULT Count([out, retval] int* Count);
        [id(00000000), propget]
        HRESULT Item(
                        [in] int Index, 
                        [out, retval] single* Val);
        [id(00000000), propput]
        HRESULT Item(
                        [in] int Index, 
                        [in] single Val);
    };

    [
      odl,
      uuid(000C0311-0000-0000-C000-000000000046),
      hidden,
      dual,
      nonextensible,
      oleautomation
    ]
    interface CalloutFormat : _IMsoDispObj {
        [id(0x00000001), propget]
        HRESULT Parent([out, retval] IDispatch** Parent);
        [id(0x0000000a)]
        HRESULT AutomaticLength();
        [id(0x0000000b)]
        HRESULT CustomDrop([in] single Drop);
        [id(0x0000000c)]
        HRESULT CustomLength([in] single Length);
        [id(0x0000000d)]
        HRESULT PresetDrop([in] MsoCalloutDropType DropType);
        [id(0x00000064), propget]
        HRESULT Accent([out, retval] MsoTriState* Accent);
        [id(0x00000064), propput]
        HRESULT Accent([in] MsoTriState Accent);
        [id(0x00000065), propget]
        HRESULT Angle([out, retval] MsoCalloutAngleType* Angle);
        [id(0x00000065), propput]
        HRESULT Angle([in] MsoCalloutAngleType Angle);
        [id(0x00000066), propget]
        HRESULT AutoAttach([out, retval] MsoTriState* AutoAttach);
        [id(0x00000066), propput]
        HRESULT AutoAttach([in] MsoTriState AutoAttach);
        [id(0x00000067), propget]
        HRESULT AutoLength([out, retval] MsoTriState* AutoLength);
        [id(0x00000068), propget]
        HRESULT Border([out, retval] MsoTriState* Border);
        [id(0x00000068), propput]
        HRESULT Border([in] MsoTriState Border);
        [id(0x00000069), propget]
        HRESULT Drop([out, retval] single* Drop);
        [id(0x0000006a), propget]
        HRESULT DropType([out, retval] MsoCalloutDropType* DropType);
        [id(0x0000006b), propget]
        HRESULT Gap([out, retval] single* Gap);
        [id(0x0000006b), propput]
        HRESULT Gap([in] single Gap);
        [id(0x0000006c), propget]
        HRESULT Length([out, retval] single* Length);
        [id(0x0000006d), propget]
        HRESULT Type([out, retval] MsoCalloutType* Type);
        [id(0x0000006d), propput]
        HRESULT Type([in] MsoCalloutType Type);
    };

    [
      odl,
      uuid(000C0312-0000-0000-C000-000000000046),
      hidden,
      dual,
      nonextensible,
      oleautomation
    ]
    interface ColorFormat : _IMsoDispObj {
        [id(0x00000001), propget]
        HRESULT Parent([out, retval] IDispatch** Parent);
        [id(00000000), propget]
        HRESULT RGB([out, retval] MsoRGBType* RGB);
        [id(00000000), propput]
        HRESULT RGB([in] MsoRGBType RGB);
        [id(0x00000064), propget]
        HRESULT SchemeColor([out, retval] int* SchemeColor);
        [id(0x00000064), propput]
        HRESULT SchemeColor([in] int SchemeColor);
        [id(0x00000065), propget]
        HRESULT Type([out, retval] MsoColorType* Type);
        [id(0x00000067), propget]
        HRESULT TintAndShade([out, retval] single* pValue);
        [id(0x00000067), propput]
        HRESULT TintAndShade([in] single pValue);
    };

    [
      odl,
      uuid(000C0313-0000-0000-C000-000000000046),
      hidden,
      dual,
      nonextensible,
      oleautomation
    ]
    interface ConnectorFormat : _IMsoDispObj {
        [id(0x00000001), propget]
        HRESULT Parent([out, retval] IDispatch** Parent);
        [id(0x0000000a)]
        HRESULT BeginConnect(
                        [in] Shape* ConnectedShape, 
                        [in] int ConnectionSite);
        [id(0x0000000b)]
        HRESULT BeginDisconnect();
        [id(0x0000000c)]
        HRESULT EndConnect(
                        [in] Shape* ConnectedShape, 
                        [in] int ConnectionSite);
        [id(0x0000000d)]
        HRESULT EndDisconnect();
        [id(0x00000064), propget]
        HRESULT BeginConnected([out, retval] MsoTriState* BeginConnected);
        [id(0x00000065), propget]
        HRESULT BeginConnectedShape([out, retval] Shape** BeginConnectedShape);
        [id(0x00000066), propget]
        HRESULT BeginConnectionSite([out, retval] int* BeginConnectionSite);
        [id(0x00000067), propget]
        HRESULT EndConnected([out, retval] MsoTriState* EndConnected);
        [id(0x00000068), propget]
        HRESULT EndConnectedShape([out, retval] Shape** EndConnectedShape);
        [id(0x00000069), propget]
        HRESULT EndConnectionSite([out, retval] int* EndConnectionSite);
        [id(0x0000006a), propget]
        HRESULT Type([out, retval] MsoConnectorType* Type);
        [id(0x0000006a), propput]
        HRESULT Type([in] MsoConnectorType Type);
    };

    [
      odl,
      uuid(000C0314-0000-0000-C000-000000000046),
      hidden,
      dual,
      nonextensible,
      oleautomation
    ]
    interface FillFormat : _IMsoDispObj {
        [id(0x00000001), propget]
        HRESULT Parent([out, retval] IDispatch** Parent);
        [id(0x0000000a)]
        HRESULT Background();
        [id(0x0000000b)]
        HRESULT OneColorGradient(
                        [in] MsoGradientStyle Style, 
                        [in] int Variant, 
                        [in] single Degree);
        [id(0x0000000c)]
        HRESULT Patterned([in] MsoPatternType Pattern);
        [id(0x0000000d)]
        HRESULT PresetGradient(
                        [in] MsoGradientStyle Style, 
                        [in] int Variant, 
                        [in] MsoPresetGradientType PresetGradientType);
        [id(0x0000000e)]
        HRESULT PresetTextured([in] MsoPresetTexture PresetTexture);
        [id(0x0000000f)]
        HRESULT Solid();
        [id(0x00000010)]
        HRESULT TwoColorGradient(
                        [in] MsoGradientStyle Style, 
                        [in] int Variant);
        [id(0x00000011)]
        HRESULT UserPicture([in] BSTR PictureFile);
        [id(0x00000012)]
        HRESULT UserTextured([in] BSTR TextureFile);
        [id(0x00000064), propget]
        HRESULT BackColor([out, retval] ColorFormat** BackColor);
        [id(0x00000064), propput]
        HRESULT BackColor([in] ColorFormat* BackColor);
        [id(0x00000065), propget]
        HRESULT ForeColor([out, retval] ColorFormat** ForeColor);
        [id(0x00000065), propput]
        HRESULT ForeColor([in] ColorFormat* ForeColor);
        [id(0x00000066), propget]
        HRESULT GradientColorType([out, retval] MsoGradientColorType* GradientColorType);
        [id(0x00000067), propget]
        HRESULT GradientDegree([out, retval] single* GradientDegree);
        [id(0x00000068), propget]
        HRESULT GradientStyle([out, retval] MsoGradientStyle* GradientStyle);
        [id(0x00000069), propget]
        HRESULT GradientVariant([out, retval] int* GradientVariant);
        [id(0x0000006a), propget]
        HRESULT Pattern([out, retval] MsoPatternType* Pattern);
        [id(0x0000006b), propget]
        HRESULT PresetGradientType([out, retval] MsoPresetGradientType* PresetGradientType);
        [id(0x0000006c), propget]
        HRESULT PresetTexture([out, retval] MsoPresetTexture* PresetTexture);
        [id(0x0000006d), propget]
        HRESULT TextureName([out, retval] BSTR* TextureName);
        [id(0x0000006e), propget]
        HRESULT TextureType([out, retval] MsoTextureType* TextureType);
        [id(0x0000006f), propget]
        HRESULT Transparency([out, retval] single* Transparency);
        [id(0x0000006f), propput]
        HRESULT Transparency([in] single Transparency);
        [id(0x00000070), propget]
        HRESULT Type([out, retval] MsoFillType* Type);
        [id(0x00000071), propget]
        HRESULT Visible([out, retval] MsoTriState* Visible);
        [id(0x00000071), propput]
        HRESULT Visible([in] MsoTriState Visible);
    };

    [
      odl,
      uuid(000C0315-0000-0000-C000-000000000046),
      hidden,
      dual,
      nonextensible,
      oleautomation
    ]
    interface FreeformBuilder : _IMsoDispObj {
        [id(0x00000001), propget]
        HRESULT Parent([out, retval] IDispatch** Parent);
        [id(0x0000000a)]
        HRESULT AddNodes(
                        [in] MsoSegmentType SegmentType, 
                        [in] MsoEditingType EditingType, 
                        [in] single X1, 
                        [in] single Y1, 
                        [in, optional, defaultvalue(0)] single X2, 
                        [in, optional, defaultvalue(0)] single Y2, 
                        [in, optional, defaultvalue(0)] single X3, 
                        [in, optional, defaultvalue(0)] single Y3);
        [id(0x0000000b)]
        HRESULT ConvertToShape([out, retval] Shape** Freeform);
    };

    [
      odl,
      uuid(000C0316-0000-0000-C000-000000000046),
      hidden,
      dual,
      nonextensible,
      oleautomation
    ]
    interface GroupShapes : _IMsoDispObj {
        [id(0x00000001), propget]
        HRESULT Parent([out, retval] IDispatch** ppidisp);
        [id(0x00000002), propget]
        HRESULT Count([out, retval] int* pnShapes);
        [id(00000000)]
        HRESULT Item(
                        [in] VARIANT Index, 
                        [out, retval] Shape** Item);
        [id(0xfffffffc), propget]
        HRESULT _NewEnum([out, retval] IUnknown** ppienum);
        [id(0x0000000a)]
        HRESULT Range(
                        [in] VARIANT Index, 
                        [out, retval] ShapeRange** Range);
    };

    [
      odl,
      uuid(000C0317-0000-0000-C000-000000000046),
      hidden,
      dual,
      nonextensible,
      oleautomation
    ]
    interface LineFormat : _IMsoDispObj {
        [id(0x00000001), propget]
        HRESULT Parent([out, retval] IDispatch** Parent);
        [id(0x00000064), propget]
        HRESULT BackColor([out, retval] ColorFormat** BackColor);
        [id(0x00000064), propput]
        HRESULT BackColor([in] ColorFormat* BackColor);
        [id(0x00000065), propget]
        HRESULT BeginArrowheadLength([out, retval] MsoArrowheadLength* BeginArrowheadLength);
        [id(0x00000065), propput]
        HRESULT BeginArrowheadLength([in] MsoArrowheadLength BeginArrowheadLength);
        [id(0x00000066), propget]
        HRESULT BeginArrowheadStyle([out, retval] MsoArrowheadStyle* BeginArrowheadStyle);
        [id(0x00000066), propput]
        HRESULT BeginArrowheadStyle([in] MsoArrowheadStyle BeginArrowheadStyle);
        [id(0x00000067), propget]
        HRESULT BeginArrowheadWidth([out, retval] MsoArrowheadWidth* BeginArrowheadWidth);
        [id(0x00000067), propput]
        HRESULT BeginArrowheadWidth([in] MsoArrowheadWidth BeginArrowheadWidth);
        [id(0x00000068), propget]
        HRESULT DashStyle([out, retval] MsoLineDashStyle* DashStyle);
        [id(0x00000068), propput]
        HRESULT DashStyle([in] MsoLineDashStyle DashStyle);
        [id(0x00000069), propget]
        HRESULT EndArrowheadLength([out, retval] MsoArrowheadLength* EndArrowheadLength);
        [id(0x00000069), propput]
        HRESULT EndArrowheadLength([in] MsoArrowheadLength EndArrowheadLength);
        [id(0x0000006a), propget]
        HRESULT EndArrowheadStyle([out, retval] MsoArrowheadStyle* EndArrowheadStyle);
        [id(0x0000006a), propput]
        HRESULT EndArrowheadStyle([in] MsoArrowheadStyle EndArrowheadStyle);
        [id(0x0000006b), propget]
        HRESULT EndArrowheadWidth([out, retval] MsoArrowheadWidth* EndArrowheadWidth);
        [id(0x0000006b), propput]
        HRESULT EndArrowheadWidth([in] MsoArrowheadWidth EndArrowheadWidth);
        [id(0x0000006c), propget]
        HRESULT ForeColor([out, retval] ColorFormat** ForeColor);
        [id(0x0000006c), propput]
        HRESULT ForeColor([in] ColorFormat* ForeColor);
        [id(0x0000006d), propget]
        HRESULT Pattern([out, retval] MsoPatternType* Pattern);
        [id(0x0000006d), propput]
        HRESULT Pattern([in] MsoPatternType Pattern);
        [id(0x0000006e), propget]
        HRESULT Style([out, retval] MsoLineStyle* Style);
        [id(0x0000006e), propput]
        HRESULT Style([in] MsoLineStyle Style);
        [id(0x0000006f), propget]
        HRESULT Transparency([out, retval] single* Transparency);
        [id(0x0000006f), propput]
        HRESULT Transparency([in] single Transparency);
        [id(0x00000070), propget]
        HRESULT Visible([out, retval] MsoTriState* Visible);
        [id(0x00000070), propput]
        HRESULT Visible([in] MsoTriState Visible);
        [id(0x00000071), propget]
        HRESULT Weight([out, retval] single* Weight);
        [id(0x00000071), propput]
        HRESULT Weight([in] single Weight);
        [id(0x00000072), propget]
        HRESULT InsetPen([out, retval] MsoTriState* InsetPen);
        [id(0x00000072), propput]
        HRESULT InsetPen([in] MsoTriState InsetPen);
    };

    [
      odl,
      uuid(000C0318-0000-0000-C000-000000000046),
      hidden,
      dual,
      nonextensible,
      oleautomation
    ]
    interface ShapeNode : _IMsoDispObj {
        [id(0x00000001), propget]
        HRESULT Parent([out, retval] IDispatch** Parent);
        [id(0x00000064), propget]
        HRESULT EditingType([out, retval] MsoEditingType* EditingType);
        [id(0x00000065), propget]
        HRESULT Points([out, retval] VARIANT* Points);
        [id(0x00000066), propget]
        HRESULT SegmentType([out, retval] MsoSegmentType* SegmentType);
    };

    [
      odl,
      uuid(000C0319-0000-0000-C000-000000000046),
      hidden,
      dual,
      nonextensible,
      oleautomation
    ]
    interface ShapeNodes : _IMsoDispObj {
        [id(0x00000001), propget]
        HRESULT Parent([out, retval] IDispatch** Parent);
        [id(0x00000002), propget]
        HRESULT Count([out, retval] int* Count);
        [id(00000000)]
        HRESULT Item(
                        [in] VARIANT Index, 
                        [out, retval] ShapeNode** Item);
        [id(0xfffffffc), propget]
        HRESULT _NewEnum([out, retval] IUnknown** _NewEnum);
        [id(0x0000000b)]
        HRESULT Delete([in] int Index);
        [id(0x0000000c)]
        HRESULT Insert(
                        [in] int Index, 
                        [in] MsoSegmentType SegmentType, 
                        [in] MsoEditingType EditingType, 
                        [in] single X1, 
                        [in] single Y1, 
                        [in, optional, defaultvalue(0)] single X2, 
                        [in, optional, defaultvalue(0)] single Y2, 
                        [in, optional, defaultvalue(0)] single X3, 
                        [in, optional, defaultvalue(0)] single Y3);
        [id(0x0000000d)]
        HRESULT SetEditingType(
                        [in] int Index, 
                        [in] MsoEditingType EditingType);
        [id(0x0000000e)]
        HRESULT SetPosition(
                        [in] int Index, 
                        [in] single X1, 
                        [in] single Y1);
        [id(0x0000000f)]
        HRESULT SetSegmentType(
                        [in] int Index, 
                        [in] MsoSegmentType SegmentType);
    };

    [
      odl,
      uuid(000C031A-0000-0000-C000-000000000046),
      hidden,
      dual,
      nonextensible,
      oleautomation
    ]
    interface PictureFormat : _IMsoDispObj {
        [id(0x00000001), propget]
        HRESULT Parent([out, retval] IDispatch** Parent);
        [id(0x0000000a)]
        HRESULT IncrementBrightness([in] single Increment);
        [id(0x0000000b)]
        HRESULT IncrementContrast([in] single Increment);
        [id(0x00000064), propget]
        HRESULT Brightness([out, retval] single* Brightness);
        [id(0x00000064), propput]
        HRESULT Brightness([in] single Brightness);
        [id(0x00000065), propget]
        HRESULT ColorType([out, retval] MsoPictureColorType* ColorType);
        [id(0x00000065), propput]
        HRESULT ColorType([in] MsoPictureColorType ColorType);
        [id(0x00000066), propget]
        HRESULT Contrast([out, retval] single* Contrast);
        [id(0x00000066), propput]
        HRESULT Contrast([in] single Contrast);
        [id(0x00000067), propget]
        HRESULT CropBottom([out, retval] single* CropBottom);
        [id(0x00000067), propput]
        HRESULT CropBottom([in] single CropBottom);
        [id(0x00000068), propget]
        HRESULT CropLeft([out, retval] single* CropLeft);
        [id(0x00000068), propput]
        HRESULT CropLeft([in] single CropLeft);
        [id(0x00000069), propget]
        HRESULT CropRight([out, retval] single* CropRight);
        [id(0x00000069), propput]
        HRESULT CropRight([in] single CropRight);
        [id(0x0000006a), propget]
        HRESULT CropTop([out, retval] single* CropTop);
        [id(0x0000006a), propput]
        HRESULT CropTop([in] single CropTop);
        [id(0x0000006b), propget]
        HRESULT TransparencyColor([out, retval] MsoRGBType* TransparencyColor);
        [id(0x0000006b), propput]
        HRESULT TransparencyColor([in] MsoRGBType TransparencyColor);
        [id(0x0000006c), propget]
        HRESULT TransparentBackground([out, retval] MsoTriState* TransparentBackground);
        [id(0x0000006c), propput]
        HRESULT TransparentBackground([in] MsoTriState TransparentBackground);
    };

    [
      odl,
      uuid(000C031B-0000-0000-C000-000000000046),
      hidden,
      dual,
      nonextensible,
      oleautomation
    ]
    interface ShadowFormat : _IMsoDispObj {
        [id(0x00000001), propget]
        HRESULT Parent([out, retval] IDispatch** Parent);
        [id(0x0000000a)]
        HRESULT IncrementOffsetX([in] single Increment);
        [id(0x0000000b)]
        HRESULT IncrementOffsetY([in] single Increment);
        [id(0x00000064), propget]
        HRESULT ForeColor([out, retval] ColorFormat** ForeColor);
        [id(0x00000064), propput]
        HRESULT ForeColor([in] ColorFormat* ForeColor);
        [id(0x00000065), propget]
        HRESULT Obscured([out, retval] MsoTriState* Obscured);
        [id(0x00000065), propput]
        HRESULT Obscured([in] MsoTriState Obscured);
        [id(0x00000066), propget]
        HRESULT OffsetX([out, retval] single* OffsetX);
        [id(0x00000066), propput]
        HRESULT OffsetX([in] single OffsetX);
        [id(0x00000067), propget]
        HRESULT OffsetY([out, retval] single* OffsetY);
        [id(0x00000067), propput]
        HRESULT OffsetY([in] single OffsetY);
        [id(0x00000068), propget]
        HRESULT Transparency([out, retval] single* Transparency);
        [id(0x00000068), propput]
        HRESULT Transparency([in] single Transparency);
        [id(0x00000069), propget]
        HRESULT Type([out, retval] MsoShadowType* Type);
        [id(0x00000069), propput]
        HRESULT Type([in] MsoShadowType Type);
        [id(0x0000006a), propget]
        HRESULT Visible([out, retval] MsoTriState* Visible);
        [id(0x0000006a), propput]
        HRESULT Visible([in] MsoTriState Visible);
    };

    typedef enum {
        msoScriptLanguageJava = 1,
        msoScriptLanguageVisualBasic = 2,
        msoScriptLanguageASP = 3,
        msoScriptLanguageOther = 4
    } MsoScriptLanguage;

    typedef enum {
        msoScriptLocationInHead = 1,
        msoScriptLocationInBody = 2
    } MsoScriptLocation;

    [
      odl,
      uuid(000C0341-0000-0000-C000-000000000046),
      helpcontext(0x00035390),
      dual,
      nonextensible,
      oleautomation
    ]
    interface Script : _IMsoDispObj {
        [id(0x60030000), propget, helpcontext(0x00035391)]
        HRESULT Parent([out, retval] IDispatch** Parent);
        [id(0x60030001), propget, helpcontext(0x00035392)]
        HRESULT Extended([out, retval] BSTR* Extended);
        [id(0x60030001), propput, helpcontext(0x00035392)]
        HRESULT Extended([in] BSTR Extended);
        [id(0x60030003), propget, helpcontext(0x00035394)]
        HRESULT Id([out, retval] BSTR* Id);
        [id(0x60030003), propput, helpcontext(0x00035394)]
        HRESULT Id([in] BSTR Id);
        [id(0x60030005), propget, helpcontext(0x00035396)]
        HRESULT Language([out, retval] MsoScriptLanguage* Language);
        [id(0x60030005), propput, helpcontext(0x00035396)]
        HRESULT Language([in] MsoScriptLanguage Language);
        [id(0x60030007), propget, helpcontext(0x00035398)]
        HRESULT Location([out, retval] MsoScriptLocation* Location);
        [id(0x60030008), helpcontext(0x00035399)]
        HRESULT Delete();
        [id(0x60030009), propget, helpcontext(0x0003539a)]
        HRESULT Shape([out, retval] IDispatch** Object);
        [id(00000000), propget, helpcontext(0x0003539b)]
        HRESULT ScriptText([out, retval] BSTR* Script);
        [id(00000000), propput, helpcontext(0x0003539b)]
        HRESULT ScriptText([in] BSTR Script);
    };

    [
      odl,
      uuid(000C0340-0000-0000-C000-000000000046),
      helpcontext(0x00034fa8),
      dual,
      nonextensible,
      oleautomation
    ]
    interface Scripts : _IMsoDispObj {
        [id(0x60030000), propget, helpcontext(0x00034fa9)]
        HRESULT Parent([out, retval] IDispatch** Parent);
        [id(0x60030001), propget, helpcontext(0x00034faa)]
        HRESULT Count([out, retval] long* Count);
        [id(0xfffffffc), propget, helpcontext(0x00034fab)]
        HRESULT _NewEnum([out, retval] IUnknown** _NewEnum);
        [id(00000000), helpcontext(0x00034fac)]
        HRESULT Item(
                        [in] VARIANT Index, 
                        [out, retval] Script** Item);
        [id(0x60030004), helpcontext(0x00034fad)]
        HRESULT Add(
                        [in, optional, defaultvalue(0)] IDispatch* Anchor, 
                        [in, optional, defaultvalue(2)] MsoScriptLocation Location, 
                        [in, optional, defaultvalue(2)] MsoScriptLanguage Language, 
                        [in, optional, defaultvalue("")] BSTR Id, 
                        [in, optional, defaultvalue("")] BSTR Extended, 
                        [in, optional, defaultvalue("")] BSTR ScriptText, 
                        [out, retval] Script** Add);
        [id(0x60030005), helpcontext(0x00034fae)]
        HRESULT Delete();
    };

    [
      odl,
      uuid(000C031C-0000-0000-C000-000000000046),
      hidden,
      dual,
      nonextensible,
      oleautomation
    ]
    interface Shape : _IMsoDispObj {
        [id(0x00000001), propget]
        HRESULT Parent([out, retval] IDispatch** Parent);
        [id(0x0000000a)]
        HRESULT Apply();
        [id(0x0000000b)]
        HRESULT Delete();
        [id(0x0000000c)]
        HRESULT Duplicate([out, retval] Shape** Duplicate);
        [id(0x0000000d)]
        HRESULT Flip([in] MsoFlipCmd FlipCmd);
        [id(0x0000000e)]
        HRESULT IncrementLeft([in] single Increment);
        [id(0x0000000f)]
        HRESULT IncrementRotation([in] single Increment);
        [id(0x00000010)]
        HRESULT IncrementTop([in] single Increment);
        [id(0x00000011)]
        HRESULT PickUp();
        [id(0x00000012)]
        HRESULT RerouteConnections();
        [id(0x00000013)]
        HRESULT ScaleHeight(
                        [in] single Factor, 
                        [in] MsoTriState RelativeToOriginalSize, 
                        [in, optional, defaultvalue(0)] MsoScaleFrom fScale);
        [id(0x00000014)]
        HRESULT ScaleWidth(
                        [in] single Factor, 
                        [in] MsoTriState RelativeToOriginalSize, 
                        [in, optional, defaultvalue(0)] MsoScaleFrom fScale);
        [id(0x00000015)]
        HRESULT Select([in, optional] VARIANT Replace);
        [id(0x00000016)]
        HRESULT SetShapesDefaultProperties();
        [id(0x00000017)]
        HRESULT Ungroup([out, retval] ShapeRange** Ungroup);
        [id(0x00000018)]
        HRESULT ZOrder([in] MsoZOrderCmd ZOrderCmd);
        [id(0x00000064), propget]
        HRESULT Adjustments([out, retval] Adjustments** Adjustments);
        [id(0x00000065), propget]
        HRESULT AutoShapeType([out, retval] MsoAutoShapeType* AutoShapeType);
        [id(0x00000065), propput]
        HRESULT AutoShapeType([in] MsoAutoShapeType AutoShapeType);
        [id(0x00000066), propget]
        HRESULT BlackWhiteMode([out, retval] MsoBlackWhiteMode* BlackWhiteMode);
        [id(0x00000066), propput]
        HRESULT BlackWhiteMode([in] MsoBlackWhiteMode BlackWhiteMode);
        [id(0x00000067), propget]
        HRESULT Callout([out, retval] CalloutFormat** Callout);
        [id(0x00000068), propget]
        HRESULT ConnectionSiteCount([out, retval] int* ConnectionSiteCount);
        [id(0x00000069), propget]
        HRESULT Connector([out, retval] MsoTriState* Connector);
        [id(0x0000006a), propget]
        HRESULT ConnectorFormat([out, retval] ConnectorFormat** ConnectorFormat);
        [id(0x0000006b), propget]
        HRESULT Fill([out, retval] FillFormat** Fill);
        [id(0x0000006c), propget]
        HRESULT GroupItems([out, retval] GroupShapes** GroupItems);
        [id(0x0000006d), propget]
        HRESULT Height([out, retval] single* Height);
        [id(0x0000006d), propput]
        HRESULT Height([in] single Height);
        [id(0x0000006e), propget]
        HRESULT HorizontalFlip([out, retval] MsoTriState* HorizontalFlip);
        [id(0x0000006f), propget]
        HRESULT Left([out, retval] single* Left);
        [id(0x0000006f), propput]
        HRESULT Left([in] single Left);
        [id(0x00000070), propget]
        HRESULT Line([out, retval] LineFormat** Line);
        [id(0x00000071), propget]
        HRESULT LockAspectRatio([out, retval] MsoTriState* LockAspectRatio);
        [id(0x00000071), propput]
        HRESULT LockAspectRatio([in] MsoTriState LockAspectRatio);
        [id(0x00000073), propget]
        HRESULT Name([out, retval] BSTR* Name);
        [id(0x00000073), propput]
        HRESULT Name([in] BSTR Name);
        [id(0x00000074), propget]
        HRESULT Nodes([out, retval] ShapeNodes** Nodes);
        [id(0x00000075), propget]
        HRESULT Rotation([out, retval] single* Rotation);
        [id(0x00000075), propput]
        HRESULT Rotation([in] single Rotation);
        [id(0x00000076), propget]
        HRESULT PictureFormat([out, retval] PictureFormat** Picture);
        [id(0x00000077), propget]
        HRESULT Shadow([out, retval] ShadowFormat** Shadow);
        [id(0x00000078), propget]
        HRESULT TextEffect([out, retval] TextEffectFormat** TextEffect);
        [id(0x00000079), propget]
        HRESULT TextFrame([out, retval] TextFrame** TextFrame);
        [id(0x0000007a), propget]
        HRESULT ThreeD([out, retval] ThreeDFormat** ThreeD);
        [id(0x0000007b), propget]
        HRESULT Top([out, retval] single* Top);
        [id(0x0000007b), propput]
        HRESULT Top([in] single Top);
        [id(0x0000007c), propget]
        HRESULT Type([out, retval] MsoShapeType* Type);
        [id(0x0000007d), propget]
        HRESULT VerticalFlip([out, retval] MsoTriState* VerticalFlip);
        [id(0x0000007e), propget]
        HRESULT Vertices([out, retval] VARIANT* Vertices);
        [id(0x0000007f), propget]
        HRESULT Visible([out, retval] MsoTriState* Visible);
        [id(0x0000007f), propput]
        HRESULT Visible([in] MsoTriState Visible);
        [id(0x00000080), propget]
        HRESULT Width([out, retval] single* Width);
        [id(0x00000080), propput]
        HRESULT Width([in] single Width);
        [id(0x00000081), propget]
        HRESULT ZOrderPosition([out, retval] int* ZOrderPosition);
        [id(0x00000082), propget]
        HRESULT Script([out, retval] Script** Script);
        [id(0x00000083), propget]
        HRESULT AlternativeText([out, retval] BSTR* AlternativeText);
        [id(0x00000083), propput]
        HRESULT AlternativeText([in] BSTR AlternativeText);
        [id(0x00000084), propget]
        HRESULT HasDiagram([out, retval] MsoTriState* pHasDiagram);
        [id(0x00000085), propget]
        HRESULT Diagram([out, retval] IMsoDiagram** Diagram);
        [id(0x00000086), propget]
        HRESULT HasDiagramNode([out, retval] MsoTriState* pHasDiagram);
        [id(0x00000087), propget]
        HRESULT DiagramNode([out, retval] DiagramNode** DiagramNode);
        [id(0x00000088), propget]
        HRESULT Child([out, retval] MsoTriState* Child);
        [id(0x00000089), propget]
        HRESULT ParentGroup([out, retval] Shape** Parent);
        [id(0x0000008a), propget, hidden]
        HRESULT CanvasItems([out, retval] CanvasShapes** CanvasShapes);
        [id(0x0000008b), propget]
        HRESULT Id([out, retval] int* pid);
        [id(0x0000008c), hidden]
        HRESULT CanvasCropLeft([in] single Increment);
        [id(0x0000008d), hidden]
        HRESULT CanvasCropTop([in] single Increment);
        [id(0x0000008e), hidden]
        HRESULT CanvasCropRight([in] single Increment);
        [id(0x0000008f), hidden]
        HRESULT CanvasCropBottom([in] single Increment);
        [id(0x00000090), propput, hidden]
        HRESULT RTF([in] BSTR rhs);
    };

    [
      odl,
      uuid(000C031D-0000-0000-C000-000000000046),
      hidden,
      dual,
      nonextensible,
      oleautomation
    ]
    interface ShapeRange : _IMsoDispObj {
        [id(0x00000001), propget]
        HRESULT Parent([out, retval] IDispatch** Parent);
        [id(0x00000002), propget]
        HRESULT Count([out, retval] int* Count);
        [id(00000000)]
        HRESULT Item(
                        [in] VARIANT Index, 
                        [out, retval] Shape** Item);
        [id(0xfffffffc), propget]
        HRESULT _NewEnum([out, retval] IUnknown** _NewEnum);
        [id(0x0000000a)]
        HRESULT Align(
                        [in] MsoAlignCmd AlignCmd, 
                        [in] MsoTriState RelativeTo);
        [id(0x0000000b)]
        HRESULT Apply();
        [id(0x0000000c)]
        HRESULT Delete();
        [id(0x0000000d)]
        HRESULT Distribute(
                        [in] MsoDistributeCmd DistributeCmd, 
                        [in] MsoTriState RelativeTo);
        [id(0x0000000e)]
        HRESULT Duplicate([out, retval] ShapeRange** Duplicate);
        [id(0x0000000f)]
        HRESULT Flip([in] MsoFlipCmd FlipCmd);
        [id(0x00000010)]
        HRESULT IncrementLeft([in] single Increment);
        [id(0x00000011)]
        HRESULT IncrementRotation([in] single Increment);
        [id(0x00000012)]
        HRESULT IncrementTop([in] single Increment);
        [id(0x00000013)]
        HRESULT Group([out, retval] Shape** Group);
        [id(0x00000014)]
        HRESULT PickUp();
        [id(0x00000015)]
        HRESULT Regroup([out, retval] Shape** Regroup);
        [id(0x00000016)]
        HRESULT RerouteConnections();
        [id(0x00000017)]
        HRESULT ScaleHeight(
                        [in] single Factor, 
                        [in] MsoTriState RelativeToOriginalSize, 
                        [in, optional, defaultvalue(0)] MsoScaleFrom fScale);
        [id(0x00000018)]
        HRESULT ScaleWidth(
                        [in] single Factor, 
                        [in] MsoTriState RelativeToOriginalSize, 
                        [in, optional, defaultvalue(0)] MsoScaleFrom fScale);
        [id(0x00000019)]
        HRESULT Select([in, optional] VARIANT Replace);
        [id(0x0000001a)]
        HRESULT SetShapesDefaultProperties();
        [id(0x0000001b)]
        HRESULT Ungroup([out, retval] ShapeRange** Ungroup);
        [id(0x0000001c)]
        HRESULT ZOrder([in] MsoZOrderCmd ZOrderCmd);
        [id(0x00000064), propget]
        HRESULT Adjustments([out, retval] Adjustments** Adjustments);
        [id(0x00000065), propget]
        HRESULT AutoShapeType([out, retval] MsoAutoShapeType* AutoShapeType);
        [id(0x00000065), propput]
        HRESULT AutoShapeType([in] MsoAutoShapeType AutoShapeType);
        [id(0x00000066), propget]
        HRESULT BlackWhiteMode([out, retval] MsoBlackWhiteMode* BlackWhiteMode);
        [id(0x00000066), propput]
        HRESULT BlackWhiteMode([in] MsoBlackWhiteMode BlackWhiteMode);
        [id(0x00000067), propget]
        HRESULT Callout([out, retval] CalloutFormat** Callout);
        [id(0x00000068), propget]
        HRESULT ConnectionSiteCount([out, retval] int* ConnectionSiteCount);
        [id(0x00000069), propget]
        HRESULT Connector([out, retval] MsoTriState* Connector);
        [id(0x0000006a), propget]
        HRESULT ConnectorFormat([out, retval] ConnectorFormat** ConnectorFormat);
        [id(0x0000006b), propget]
        HRESULT Fill([out, retval] FillFormat** Fill);
        [id(0x0000006c), propget]
        HRESULT GroupItems([out, retval] GroupShapes** GroupItems);
        [id(0x0000006d), propget]
        HRESULT Height([out, retval] single* Height);
        [id(0x0000006d), propput]
        HRESULT Height([in] single Height);
        [id(0x0000006e), propget]
        HRESULT HorizontalFlip([out, retval] MsoTriState* HorizontalFlip);
        [id(0x0000006f), propget]
        HRESULT Left([out, retval] single* Left);
        [id(0x0000006f), propput]
        HRESULT Left([in] single Left);
        [id(0x00000070), propget]
        HRESULT Line([out, retval] LineFormat** Line);
        [id(0x00000071), propget]
        HRESULT LockAspectRatio([out, retval] MsoTriState* LockAspectRatio);
        [id(0x00000071), propput]
        HRESULT LockAspectRatio([in] MsoTriState LockAspectRatio);
        [id(0x00000073), propget]
        HRESULT Name([out, retval] BSTR* Name);
        [id(0x00000073), propput]
        HRESULT Name([in] BSTR Name);
        [id(0x00000074), propget]
        HRESULT Nodes([out, retval] ShapeNodes** Nodes);
        [id(0x00000075), propget]
        HRESULT Rotation([out, retval] single* Rotation);
        [id(0x00000075), propput]
        HRESULT Rotation([in] single Rotation);
        [id(0x00000076), propget]
        HRESULT PictureFormat([out, retval] PictureFormat** Picture);
        [id(0x00000077), propget]
        HRESULT Shadow([out, retval] ShadowFormat** Shadow);
        [id(0x00000078), propget]
        HRESULT TextEffect([out, retval] TextEffectFormat** TextEffect);
        [id(0x00000079), propget]
        HRESULT TextFrame([out, retval] TextFrame** TextFrame);
        [id(0x0000007a), propget]
        HRESULT ThreeD([out, retval] ThreeDFormat** ThreeD);
        [id(0x0000007b), propget]
        HRESULT Top([out, retval] single* Top);
        [id(0x0000007b), propput]
        HRESULT Top([in] single Top);
        [id(0x0000007c), propget]
        HRESULT Type([out, retval] MsoShapeType* Type);
        [id(0x0000007d), propget]
        HRESULT VerticalFlip([out, retval] MsoTriState* VerticalFlip);
        [id(0x0000007e), propget]
        HRESULT Vertices([out, retval] VARIANT* Vertices);
        [id(0x0000007f), propget]
        HRESULT Visible([out, retval] MsoTriState* Visible);
        [id(0x0000007f), propput]
        HRESULT Visible([in] MsoTriState Visible);
        [id(0x00000080), propget]
        HRESULT Width([out, retval] single* Width);
        [id(0x00000080), propput]
        HRESULT Width([in] single Width);
        [id(0x00000081), propget]
        HRESULT ZOrderPosition([out, retval] int* ZOrderPosition);
        [id(0x00000082), propget]
        HRESULT Script([out, retval] Script** Script);
        [id(0x00000083), propget]
        HRESULT AlternativeText([out, retval] BSTR* AlternativeText);
        [id(0x00000083), propput]
        HRESULT AlternativeText([in] BSTR AlternativeText);
        [id(0x00000084), propget]
        HRESULT HasDiagram([out, retval] MsoTriState* pHasDiagram);
        [id(0x00000085), propget]
        HRESULT Diagram([out, retval] IMsoDiagram** Diagram);
        [id(0x00000086), propget]
        HRESULT HasDiagramNode([out, retval] MsoTriState* pHasDiagram);
        [id(0x00000087), propget]
        HRESULT DiagramNode([out, retval] DiagramNode** DiagramNode);
        [id(0x00000088), propget]
        HRESULT Child([out, retval] MsoTriState* Child);
        [id(0x00000089), propget]
        HRESULT ParentGroup([out, retval] Shape** Parent);
        [id(0x0000008a), propget, hidden]
        HRESULT CanvasItems([out, retval] CanvasShapes** CanvasShapes);
        [id(0x0000008b), propget]
        HRESULT Id([out, retval] int* pid);
        [id(0x0000008c), hidden]
        HRESULT CanvasCropLeft([in] single Increment);
        [id(0x0000008d), hidden]
        HRESULT CanvasCropTop([in] single Increment);
        [id(0x0000008e), hidden]
        HRESULT CanvasCropRight([in] single Increment);
        [id(0x0000008f), hidden]
        HRESULT CanvasCropBottom([in] single Increment);
        [id(0x00000090), propput, hidden]
        HRESULT RTF([in] BSTR rhs);
    };

    [
      odl,
      uuid(000C031E-0000-0000-C000-000000000046),
      hidden,
      dual,
      nonextensible,
      oleautomation
    ]
    interface Shapes : _IMsoDispObj {
        [id(0x00000001), propget]
        HRESULT Parent([out, retval] IDispatch** Parent);
        [id(0x00000002), propget]
        HRESULT Count([out, retval] int* Count);
        [id(00000000)]
        HRESULT Item(
                        [in] VARIANT Index, 
                        [out, retval] Shape** Item);
        [id(0xfffffffc), propget]
        HRESULT _NewEnum([out, retval] IUnknown** _NewEnum);
        [id(0x0000000a)]
        HRESULT AddCallout(
                        [in] MsoCalloutType Type, 
                        [in] single Left, 
                        [in] single Top, 
                        [in] single Width, 
                        [in] single Height, 
                        [out, retval] Shape** Callout);
        [id(0x0000000b)]
        HRESULT AddConnector(
                        [in] MsoConnectorType Type, 
                        [in] single BeginX, 
                        [in] single BeginY, 
                        [in] single EndX, 
                        [in] single EndY, 
                        [out, retval] Shape** Connector);
        [id(0x0000000c)]
        HRESULT AddCurve(
                        [in] VARIANT SafeArrayOfPoints, 
                        [out, retval] Shape** Curve);
        [id(0x0000000d)]
        HRESULT AddLabel(
                        [in] MsoTextOrientation Orientation, 
                        [in] single Left, 
                        [in] single Top, 
                        [in] single Width, 
                        [in] single Height, 
                        [out, retval] Shape** Label);
        [id(0x0000000e)]
        HRESULT AddLine(
                        [in] single BeginX, 
                        [in] single BeginY, 
                        [in] single EndX, 
                        [in] single EndY, 
                        [out, retval] Shape** Line);
        [id(0x0000000f)]
        HRESULT AddPicture(
                        [in] BSTR FileName, 
                        [in] MsoTriState LinkToFile, 
                        [in] MsoTriState SaveWithDocument, 
                        [in] single Left, 
                        [in] single Top, 
                        [in, optional, defaultvalue(-1)] single Width, 
                        [in, optional, defaultvalue(-1)] single Height, 
                        [out, retval] Shape** Picture);
        [id(0x00000010)]
        HRESULT AddPolyline(
                        [in] VARIANT SafeArrayOfPoints, 
                        [out, retval] Shape** Polyline);
        [id(0x00000011)]
        HRESULT AddShape(
                        [in] MsoAutoShapeType Type, 
                        [in] single Left, 
                        [in] single Top, 
                        [in] single Width, 
                        [in] single Height, 
                        [out, retval] Shape** Shape);
        [id(0x00000012)]
        HRESULT AddTextEffect(
                        [in] MsoPresetTextEffect PresetTextEffect, 
                        [in] BSTR Text, 
                        [in] BSTR FontName, 
                        [in] single FontSize, 
                        [in] MsoTriState FontBold, 
                        [in] MsoTriState FontItalic, 
                        [in] single Left, 
                        [in] single Top, 
                        [out, retval] Shape** TextEffect);
        [id(0x00000013)]
        HRESULT AddTextbox(
                        [in] MsoTextOrientation Orientation, 
                        [in] single Left, 
                        [in] single Top, 
                        [in] single Width, 
                        [in] single Height, 
                        [out, retval] Shape** Textbox);
        [id(0x00000014)]
        HRESULT BuildFreeform(
                        [in] MsoEditingType EditingType, 
                        [in] single X1, 
                        [in] single Y1, 
                        [out, retval] FreeformBuilder** FreeformBuilder);
        [id(0x00000015)]
        HRESULT Range(
                        [in] VARIANT Index, 
                        [out, retval] ShapeRange** Range);
        [id(0x00000016)]
        HRESULT SelectAll();
        [id(0x00000064), propget]
        HRESULT Background([out, retval] Shape** Background);
        [id(0x00000065), propget]
        HRESULT Default([out, retval] Shape** Default);
        [id(0x00000017)]
        HRESULT AddDiagram(
                        [in] MsoDiagramType Type, 
                        [in] single Left, 
                        [in] single Top, 
                        [in] single Width, 
                        [in] single Height, 
                        [out, retval] Shape** Diagram);
        [id(0x00000019), hidden]
        HRESULT AddCanvas(
                        [in] single Left, 
                        [in] single Top, 
                        [in] single Width, 
                        [in] single Height, 
                        [out, retval] Shape** Shape);
    };

    [
      odl,
      uuid(000C031F-0000-0000-C000-000000000046),
      hidden,
      dual,
      nonextensible,
      oleautomation
    ]
    interface TextEffectFormat : _IMsoDispObj {
        [id(0x00000001), propget]
        HRESULT Parent([out, retval] IDispatch** Parent);
        [id(0x0000000a)]
        HRESULT ToggleVerticalText();
        [id(0x00000064), propget]
        HRESULT Alignment([out, retval] MsoTextEffectAlignment* Alignment);
        [id(0x00000064), propput]
        HRESULT Alignment([in] MsoTextEffectAlignment Alignment);
        [id(0x00000065), propget]
        HRESULT FontBold([out, retval] MsoTriState* FontBold);
        [id(0x00000065), propput]
        HRESULT FontBold([in] MsoTriState FontBold);
        [id(0x00000066), propget]
        HRESULT FontItalic([out, retval] MsoTriState* FontItalic);
        [id(0x00000066), propput]
        HRESULT FontItalic([in] MsoTriState FontItalic);
        [id(0x00000067), propget]
        HRESULT FontName([out, retval] BSTR* FontName);
        [id(0x00000067), propput]
        HRESULT FontName([in] BSTR FontName);
        [id(0x00000068), propget]
        HRESULT FontSize([out, retval] single* FontSize);
        [id(0x00000068), propput]
        HRESULT FontSize([in] single FontSize);
        [id(0x00000069), propget]
        HRESULT KernedPairs([out, retval] MsoTriState* KernedPairs);
        [id(0x00000069), propput]
        HRESULT KernedPairs([in] MsoTriState KernedPairs);
        [id(0x0000006a), propget]
        HRESULT NormalizedHeight([out, retval] MsoTriState* NormalizedHeight);
        [id(0x0000006a), propput]
        HRESULT NormalizedHeight([in] MsoTriState NormalizedHeight);
        [id(0x0000006b), propget]
        HRESULT PresetShape([out, retval] MsoPresetTextEffectShape* PresetShape);
        [id(0x0000006b), propput]
        HRESULT PresetShape([in] MsoPresetTextEffectShape PresetShape);
        [id(0x0000006c), propget]
        HRESULT PresetTextEffect([out, retval] MsoPresetTextEffect* Preset);
        [id(0x0000006c), propput]
        HRESULT PresetTextEffect([in] MsoPresetTextEffect Preset);
        [id(0x0000006d), propget]
        HRESULT RotatedChars([out, retval] MsoTriState* RotatedChars);
        [id(0x0000006d), propput]
        HRESULT RotatedChars([in] MsoTriState RotatedChars);
        [id(0x0000006e), propget]
        HRESULT Text([out, retval] BSTR* Text);
        [id(0x0000006e), propput]
        HRESULT Text([in] BSTR Text);
        [id(0x0000006f), propget]
        HRESULT Tracking([out, retval] single* Tracking);
        [id(0x0000006f), propput]
        HRESULT Tracking([in] single Tracking);
    };

    [
      odl,
      uuid(000C0320-0000-0000-C000-000000000046),
      hidden,
      dual,
      nonextensible,
      oleautomation
    ]
    interface TextFrame : _IMsoDispObj {
        [id(0x00000001), propget]
        HRESULT Parent([out, retval] IDispatch** Parent);
        [id(0x00000064), propget]
        HRESULT MarginBottom([out, retval] single* MarginBottom);
        [id(0x00000064), propput]
        HRESULT MarginBottom([in] single MarginBottom);
        [id(0x00000065), propget]
        HRESULT MarginLeft([out, retval] single* MarginLeft);
        [id(0x00000065), propput]
        HRESULT MarginLeft([in] single MarginLeft);
        [id(0x00000066), propget]
        HRESULT MarginRight([out, retval] single* MarginRight);
        [id(0x00000066), propput]
        HRESULT MarginRight([in] single MarginRight);
        [id(0x00000067), propget]
        HRESULT MarginTop([out, retval] single* MarginTop);
        [id(0x00000067), propput]
        HRESULT MarginTop([in] single MarginTop);
        [id(0x00000068), propget]
        HRESULT Orientation([out, retval] MsoTextOrientation* Orientation);
        [id(0x00000068), propput]
        HRESULT Orientation([in] MsoTextOrientation Orientation);
    };

    [
      odl,
      uuid(000C0321-0000-0000-C000-000000000046),
      hidden,
      dual,
      nonextensible,
      oleautomation
    ]
    interface ThreeDFormat : _IMsoDispObj {
        [id(0x00000001), propget]
        HRESULT Parent([out, retval] IDispatch** Parent);
        [id(0x0000000a)]
        HRESULT IncrementRotationX([in] single Increment);
        [id(0x0000000b)]
        HRESULT IncrementRotationY([in] single Increment);
        [id(0x0000000c)]
        HRESULT ResetRotation();
        [id(0x0000000d)]
        HRESULT SetThreeDFormat([in] MsoPresetThreeDFormat PresetThreeDFormat);
        [id(0x0000000e)]
        HRESULT SetExtrusionDirection([in] MsoPresetExtrusionDirection PresetExtrusionDirection);
        [id(0x00000064), propget]
        HRESULT Depth([out, retval] single* Depth);
        [id(0x00000064), propput]
        HRESULT Depth([in] single Depth);
        [id(0x00000065), propget]
        HRESULT ExtrusionColor([out, retval] ColorFormat** ExtrusionColor);
        [id(0x00000066), propget]
        HRESULT ExtrusionColorType([out, retval] MsoExtrusionColorType* ExtrusionColorType);
        [id(0x00000066), propput]
        HRESULT ExtrusionColorType([in] MsoExtrusionColorType ExtrusionColorType);
        [id(0x00000067), propget]
        HRESULT Perspective([out, retval] MsoTriState* Perspective);
        [id(0x00000067), propput]
        HRESULT Perspective([in] MsoTriState Perspective);
        [id(0x00000068), propget]
        HRESULT PresetExtrusionDirection([out, retval] MsoPresetExtrusionDirection* PresetExtrusionDirection);
        [id(0x00000069), propget]
        HRESULT PresetLightingDirection([out, retval] MsoPresetLightingDirection* PresetLightingDirection);
        [id(0x00000069), propput]
        HRESULT PresetLightingDirection([in] MsoPresetLightingDirection PresetLightingDirection);
        [id(0x0000006a), propget]
        HRESULT PresetLightingSoftness([out, retval] MsoPresetLightingSoftness* PresetLightingSoftness);
        [id(0x0000006a), propput]
        HRESULT PresetLightingSoftness([in] MsoPresetLightingSoftness PresetLightingSoftness);
        [id(0x0000006b), propget]
        HRESULT PresetMaterial([out, retval] MsoPresetMaterial* PresetMaterial);
        [id(0x0000006b), propput]
        HRESULT PresetMaterial([in] MsoPresetMaterial PresetMaterial);
        [id(0x0000006c), propget]
        HRESULT PresetThreeDFormat([out, retval] MsoPresetThreeDFormat* PresetThreeDFormat);
        [id(0x0000006d), propget]
        HRESULT RotationX([out, retval] single* RotationX);
        [id(0x0000006d), propput]
        HRESULT RotationX([in] single RotationX);
        [id(0x0000006e), propget]
        HRESULT RotationY([out, retval] single* RotationY);
        [id(0x0000006e), propput]
        HRESULT RotationY([in] single RotationY);
        [id(0x0000006f), propget]
        HRESULT Visible([out, retval] MsoTriState* Visible);
        [id(0x0000006f), propput]
        HRESULT Visible([in] MsoTriState Visible);
    };

    [
      odl,
      uuid(000C0359-0000-0000-C000-000000000046),
      hidden,
      dual,
      nonextensible,
      oleautomation
    ]
    interface IMsoDispCagNotifySink : IDispatch {
        [id(0x00000001)]
        HRESULT InsertClip(
                        [in] IUnknown* pClipMoniker, 
                        [in] IUnknown* pItemMoniker);
        [id(0x00000002)]
        HRESULT WindowIsClosing();
    };

    [
      odl,
      uuid(000C0324-0000-0000-C000-000000000046),
      helpcontext(0x00031128),
      dual,
      nonextensible,
      oleautomation
    ]
    interface Balloon : _IMsoDispObj {
        [id(0x60030000), propget, helpcontext(0x00031129)]
        HRESULT Parent([out, retval] IDispatch** ppidisp);
        [id(0x60030001), propget, helpcontext(0x0003112a)]
        HRESULT Checkboxes([out, retval] IDispatch** ppidisp);
        [id(0x60030002), propget, helpcontext(0x0003112b)]
        HRESULT Labels([out, retval] IDispatch** ppidisp);
        [id(0x60030003), propput, helpcontext(0x0003112c)]
        HRESULT BalloonType([in] MsoBalloonType pbty);
        [id(0x60030003), propget, helpcontext(0x0003112c)]
        HRESULT BalloonType([out, retval] MsoBalloonType* pbty);
        [id(0x60030005), propput, helpcontext(0x0003112d)]
        HRESULT Icon([in] MsoIconType picn);
        [id(0x60030005), propget, helpcontext(0x0003112d)]
        HRESULT Icon([out, retval] MsoIconType* picn);
        [id(0x60030007), propput, helpcontext(0x0003112e)]
        HRESULT Heading([in] BSTR pbstr);
        [id(0x60030007), propget, helpcontext(0x0003112e)]
        HRESULT Heading([out, retval] BSTR* pbstr);
        [id(0x60030009), propput, helpcontext(0x0003112f)]
        HRESULT Text([in] BSTR pbstr);
        [id(0x60030009), propget, helpcontext(0x0003112f)]
        HRESULT Text([out, retval] BSTR* pbstr);
        [id(0x6003000b), propput, helpcontext(0x00031130)]
        HRESULT Mode([in] MsoModeType pmd);
        [id(0x6003000b), propget, helpcontext(0x00031130)]
        HRESULT Mode([out, retval] MsoModeType* pmd);
        [id(0x6003000d), propput, helpcontext(0x00031131)]
        HRESULT Animation([in] MsoAnimationType pfca);
        [id(0x6003000d), propget, helpcontext(0x00031131)]
        HRESULT Animation([out, retval] MsoAnimationType* pfca);
        [id(0x6003000f), propput, helpcontext(0x00031132)]
        HRESULT Button([in] MsoButtonSetType psbs);
        [id(0x6003000f), propget, helpcontext(0x00031132)]
        HRESULT Button([out, retval] MsoButtonSetType* psbs);
        [id(0x60030011), propput, helpcontext(0x00031133)]
        HRESULT Callback([in] BSTR pbstr);
        [id(0x60030011), propget, helpcontext(0x00031133)]
        HRESULT Callback([out, retval] BSTR* pbstr);
        [id(0x60030013), propput, helpcontext(0x00031134)]
        HRESULT Private([in] long plPrivate);
        [id(0x60030013), propget, helpcontext(0x00031134)]
        HRESULT Private([out, retval] long* plPrivate);
        [id(0x60030015), helpcontext(0x00031135)]
        HRESULT SetAvoidRectangle(
                        [in] int Left, 
                        [in] int Top, 
                        [in] int Right, 
                        [in] int Bottom);
        [id(0x60030016), propget, helpcontext(0x00031136)]
        HRESULT Name([out, retval] BSTR* pbstrName);
        [id(0x60030017), helpcontext(0x00031137)]
        HRESULT Show([out, retval] MsoBalloonButtonType* pibtn);
        [id(0x60030018), helpcontext(0x00031138)]
        HRESULT Close();
    };

    [
      odl,
      uuid(000C0326-0000-0000-C000-000000000046),
      helpcontext(0x00031510),
      dual,
      nonextensible,
      oleautomation
    ]
    interface BalloonCheckboxes : _IMsoDispObj {
        [id(0x60030000), propget, helpcontext(0x00031511)]
        HRESULT Name([out, retval] BSTR* pbstrName);
        [id(0x60030001), propget, helpcontext(0x00031512)]
        HRESULT Parent([out, retval] IDispatch** ppidisp);
        [id(00000000), propget, helpcontext(0x00031513)]
        HRESULT Item(
                        [in] int Index, 
                        [out, retval] IDispatch** ppidisp);
        [id(0x60030003), propget, helpcontext(0x00031514)]
        HRESULT Count([out, retval] int* pccbx);
        [id(0x60030003), propput, helpcontext(0x00031514)]
        HRESULT Count([in] int pccbx);
        [id(0xfffffffc), propget, helpcontext(0x00031515)]
        HRESULT _NewEnum([out, retval] IUnknown** ppienum);
    };

    [
      odl,
      uuid(000C0328-0000-0000-C000-000000000046),
      helpcontext(0x000318f8),
      dual,
      nonextensible,
      oleautomation
    ]
    interface BalloonCheckbox : _IMsoDispObj {
        [id(00000000), propget, helpcontext(0x000318f9)]
        HRESULT Item([out, retval] BSTR* pbstrName);
        [id(0x60030001), propget, helpcontext(0x000318fa)]
        HRESULT Name([out, retval] BSTR* pbstrName);
        [id(0x60030002), propget, helpcontext(0x000318fb)]
        HRESULT Parent([out, retval] IDispatch** ppidisp);
        [id(0x60030003), propput, helpcontext(0x000318fc)]
        HRESULT Checked([in] VARIANT_BOOL pvarfChecked);
        [id(0x60030003), propget, helpcontext(0x000318fc)]
        HRESULT Checked([out, retval] VARIANT_BOOL* pvarfChecked);
        [id(0x60030005), propput, helpcontext(0x000318fd)]
        HRESULT Text([in] BSTR pbstr);
        [id(0x60030005), propget, helpcontext(0x000318fd)]
        HRESULT Text([out, retval] BSTR* pbstr);
    };

    [
      odl,
      uuid(000C032E-0000-0000-C000-000000000046),
      helpcontext(0x00031ce0),
      dual,
      nonextensible,
      oleautomation
    ]
    interface BalloonLabels : _IMsoDispObj {
        [id(0x60030000), propget, helpcontext(0x00031ce1)]
        HRESULT Name([out, retval] BSTR* pbstrName);
        [id(0x60030001), propget, helpcontext(0x00031ce2)]
        HRESULT Parent([out, retval] IDispatch** ppidisp);
        [id(00000000), propget, helpcontext(0x00031ce3)]
        HRESULT Item(
                        [in] int Index, 
                        [out, retval] IDispatch** ppidisp);
        [id(0x60030003), propget, helpcontext(0x00031ce4)]
        HRESULT Count([out, retval] int* pcwz);
        [id(0x60030003), propput, helpcontext(0x00031ce4)]
        HRESULT Count([in] int pcwz);
        [id(0xfffffffc), propget, helpcontext(0x00031ce5)]
        HRESULT _NewEnum([out, retval] IUnknown** ppienum);
    };

    [
      odl,
      uuid(000C0330-0000-0000-C000-000000000046),
      helpcontext(0x000320c8),
      dual,
      nonextensible,
      oleautomation
    ]
    interface BalloonLabel : _IMsoDispObj {
        [id(00000000), propget, helpcontext(0x000320c9)]
        HRESULT Item([out, retval] BSTR* pbstrName);
        [id(0x60030001), propget, helpcontext(0x000320ca)]
        HRESULT Name([out, retval] BSTR* pbstrName);
        [id(0x60030002), propget, helpcontext(0x000320cb)]
        HRESULT Parent([out, retval] IDispatch** ppidisp);
        [id(0x60030003), propput, helpcontext(0x000320cc)]
        HRESULT Text([in] BSTR pbstr);
        [id(0x60030003), propget, helpcontext(0x000320cc)]
        HRESULT Text([out, retval] BSTR* pbstr);
    };

    [
      odl,
      uuid(000C0361-0000-0000-C000-000000000046),
      helpcontext(0x000372d0),
      dual,
      nonextensible,
      oleautomation
    ]
    interface AnswerWizardFiles : _IMsoDispObj {
        [id(0x60030000), propget, helpcontext(0x000372d1)]
        HRESULT Parent([out, retval] IDispatch** ppidisp);
        [id(00000000), propget, helpcontext(0x000372d2)]
        HRESULT Item(
                        [in] int Index, 
                        [out, retval] BSTR* pbstr);
        [id(0x60030002), propget, helpcontext(0x000372d3)]
        HRESULT Count([out, retval] int* pCount);
        [id(0x60030003), helpcontext(0x000372d4)]
        HRESULT Add([in] BSTR FileName);
        [id(0x60030004), helpcontext(0x000372d5)]
        HRESULT Delete([in] BSTR FileName);
    };

    [
      odl,
      uuid(000C0360-0000-0000-C000-000000000046),
      helpcontext(0x000376b8),
      dual,
      nonextensible,
      oleautomation
    ]
    interface AnswerWizard : _IMsoDispObj {
        [id(0x60030000), propget, helpcontext(0x000376b9)]
        HRESULT Parent([out, retval] IDispatch** ppidisp);
        [id(0x60030001), propget, helpcontext(0x000376ba)]
        HRESULT Files([out, retval] AnswerWizardFiles** Files);
        [id(0x60030002), helpcontext(0x000376bb)]
        HRESULT ClearFileList();
        [id(0x60030003), helpcontext(0x000376bc)]
        HRESULT ResetFileList();
    };

    [
      odl,
      uuid(000C0322-0000-0000-C000-000000000046),
      helpcontext(0x00030d40),
      dual,
      nonextensible,
      oleautomation
    ]
    interface Assistant : _IMsoDispObj {
        [id(0x60030000), propget, helpcontext(0x00030d41)]
        HRESULT Parent([out, retval] IDispatch** ppidisp);
        [id(0x60030001), helpcontext(0x00030d42)]
        HRESULT Move(
                        [in] int xLeft, 
                        [in] int yTop);
        [id(0x60030002), propput, helpcontext(0x00030d43)]
        HRESULT Top([in] int pyTop);
        [id(0x60030002), propget, helpcontext(0x00030d43)]
        HRESULT Top([out, retval] int* pyTop);
        [id(0x60030004), propput, helpcontext(0x00030d44)]
        HRESULT Left([in] int pxLeft);
        [id(0x60030004), propget, helpcontext(0x00030d44)]
        HRESULT Left([out, retval] int* pxLeft);
        [id(0x60030006), helpcontext(0x00030d45)]
        HRESULT Help();
        [id(0x60030007), helpcontext(0x00030d46)]
        HRESULT StartWizard(
                        [in] VARIANT_BOOL On, 
                        [in] BSTR Callback, 
                        [in] long PrivateX, 
                        [in, optional] VARIANT Animation, 
                        [in, optional] VARIANT CustomTeaser, 
                        [in, optional] VARIANT Top, 
                        [in, optional] VARIANT Left, 
                        [in, optional] VARIANT Bottom, 
                        [in, optional] VARIANT Right, 
                        [out, retval] long* plWizID);
        [id(0x60030008), helpcontext(0x00030d47)]
        HRESULT EndWizard(
                        [in] long WizardID, 
                        [in] VARIANT_BOOL varfSuccess, 
                        [in, optional] VARIANT Animation);
        [id(0x60030009), helpcontext(0x00030d48)]
        HRESULT ActivateWizard(
                        [in] long WizardID, 
                        [in] MsoWizardActType act, 
                        [in, optional] VARIANT Animation);
        [id(0x6003000a), helpcontext(0x00030d49)]
        HRESULT ResetTips();
        [id(0x6003000b), propget, helpcontext(0x00030d4a)]
        HRESULT NewBalloon([out, retval] Balloon** ppibal);
        [id(0x6003000c), propget, helpcontext(0x00030d4b)]
        HRESULT BalloonError([out, retval] MsoBalloonErrorType* pbne);
        [id(0x6003000d), propget, helpcontext(0x00030d4c)]
        HRESULT Visible([out, retval] VARIANT_BOOL* pvarfVisible);
        [id(0x6003000d), propput, helpcontext(0x00030d4c)]
        HRESULT Visible([in] VARIANT_BOOL pvarfVisible);
        [id(0x6003000f), propget, helpcontext(0x00030d4d)]
        HRESULT Animation([out, retval] MsoAnimationType* pfca);
        [id(0x6003000f), propput, helpcontext(0x00030d4d)]
        HRESULT Animation([in] MsoAnimationType pfca);
        [id(0x60030011), propget, helpcontext(0x00030d4e)]
        HRESULT Reduced([out, retval] VARIANT_BOOL* pvarfReduced);
        [id(0x60030011), propput, helpcontext(0x00030d4e)]
        HRESULT Reduced([in] VARIANT_BOOL pvarfReduced);
        [id(0x60030013), propput, helpcontext(0x00030d4f)]
        HRESULT AssistWithHelp([in] VARIANT_BOOL pvarfAssistWithHelp);
        [id(0x60030013), propget, helpcontext(0x00030d4f)]
        HRESULT AssistWithHelp([out, retval] VARIANT_BOOL* pvarfAssistWithHelp);
        [id(0x60030015), propput, helpcontext(0x00030d50)]
        HRESULT AssistWithWizards([in] VARIANT_BOOL pvarfAssistWithWizards);
        [id(0x60030015), propget, helpcontext(0x00030d50)]
        HRESULT AssistWithWizards([out, retval] VARIANT_BOOL* pvarfAssistWithWizards);
        [id(0x60030017), propput, helpcontext(0x00030d51)]
        HRESULT AssistWithAlerts([in] VARIANT_BOOL pvarfAssistWithAlerts);
        [id(0x60030017), propget, helpcontext(0x00030d51)]
        HRESULT AssistWithAlerts([out, retval] VARIANT_BOOL* pvarfAssistWithAlerts);
        [id(0x60030019), propput, helpcontext(0x00030d52)]
        HRESULT MoveWhenInTheWay([in] VARIANT_BOOL pvarfMove);
        [id(0x60030019), propget, helpcontext(0x00030d52)]
        HRESULT MoveWhenInTheWay([out, retval] VARIANT_BOOL* pvarfMove);
        [id(0x6003001b), propput, helpcontext(0x00030d53)]
        HRESULT Sounds([in] VARIANT_BOOL pvarfSounds);
        [id(0x6003001b), propget, helpcontext(0x00030d53)]
        HRESULT Sounds([out, retval] VARIANT_BOOL* pvarfSounds);
        [id(0x6003001d), propput, helpcontext(0x00030d54)]
        HRESULT FeatureTips([in] VARIANT_BOOL pvarfFeatures);
        [id(0x6003001d), propget, helpcontext(0x00030d54)]
        HRESULT FeatureTips([out, retval] VARIANT_BOOL* pvarfFeatures);
        [id(0x6003001f), propput, helpcontext(0x00030d55)]
        HRESULT MouseTips([in] VARIANT_BOOL pvarfMouse);
        [id(0x6003001f), propget, helpcontext(0x00030d55)]
        HRESULT MouseTips([out, retval] VARIANT_BOOL* pvarfMouse);
        [id(0x60030021), propput, helpcontext(0x00030d56)]
        HRESULT KeyboardShortcutTips([in] VARIANT_BOOL pvarfKeyboardShortcuts);
        [id(0x60030021), propget, helpcontext(0x00030d56)]
        HRESULT KeyboardShortcutTips([out, retval] VARIANT_BOOL* pvarfKeyboardShortcuts);
        [id(0x60030023), propput, helpcontext(0x00030d57)]
        HRESULT HighPriorityTips([in] VARIANT_BOOL pvarfHighPriorityTips);
        [id(0x60030023), propget, helpcontext(0x00030d57)]
        HRESULT HighPriorityTips([out, retval] VARIANT_BOOL* pvarfHighPriorityTips);
        [id(0x60030025), propput, helpcontext(0x00030d58)]
        HRESULT TipOfDay([in] VARIANT_BOOL pvarfTipOfDay);
        [id(0x60030025), propget, helpcontext(0x00030d58)]
        HRESULT TipOfDay([out, retval] VARIANT_BOOL* pvarfTipOfDay);
        [id(0x60030027), propput, helpcontext(0x00030d59)]
        HRESULT GuessHelp([in] VARIANT_BOOL pvarfGuessHelp);
        [id(0x60030027), propget, helpcontext(0x00030d59)]
        HRESULT GuessHelp([out, retval] VARIANT_BOOL* pvarfGuessHelp);
        [id(0x60030029), propput, helpcontext(0x00030d5a)]
        HRESULT SearchWhenProgramming([in] VARIANT_BOOL pvarfSearchInProgram);
        [id(0x60030029), propget, helpcontext(0x00030d5a)]
        HRESULT SearchWhenProgramming([out, retval] VARIANT_BOOL* pvarfSearchInProgram);
        [id(00000000), propget, helpcontext(0x00030d5b)]
        HRESULT Item([out, retval] BSTR* pbstrName);
        [id(0x6003002c), propget, helpcontext(0x00030d5c)]
        HRESULT FileName([out, retval] BSTR* pbstr);
        [id(0x6003002c), propput, helpcontext(0x00030d5c)]
        HRESULT FileName([in] BSTR pbstr);
        [id(0x6003002e), propget, helpcontext(0x00030d5d)]
        HRESULT Name([out, retval] BSTR* pbstrName);
        [id(0x6003002f), propget, helpcontext(0x00030d5e)]
        HRESULT On([out, retval] VARIANT_BOOL* pvarfOn);
        [id(0x6003002f), propput, helpcontext(0x00030d5e)]
        HRESULT On([in] VARIANT_BOOL pvarfOn);
        [id(0x60030031), helpcontext(0x00030d5f)]
        HRESULT DoAlert(
                        [in] BSTR bstrAlertTitle, 
                        [in] BSTR bstrAlertText, 
                        [in] MsoAlertButtonType alb, 
                        [in] MsoAlertIconType alc, 
                        [in] MsoAlertDefaultType ald, 
                        [in] MsoAlertCancelType alq, 
                        [in] VARIANT_BOOL varfSysAlert, 
                        [out, retval] int* pibtn);
    };

    [
      odl,
      uuid(2DF8D04E-5BFA-101B-BDE5-00AA0044DE52),
      helpcontext(0x0003d092)
    ]
    interface DocumentProperty : IDispatch {
        [propget, helpcontext(0x0003d093)]
        IDispatch* _stdcall Parent();
        [helpcontext(0x0003d094)]
        HRESULT _stdcall Delete();
        [propget, helpcontext(0x0003d095)]
        HRESULT _stdcall Name(
                        [in, lcid] long lcid, 
                        [out, retval] BSTR* pbstrRetVal);
        [propput, helpcontext(0x0003d095)]
        HRESULT _stdcall Name(
                        [in, lcid] long lcid, 
                        [in] BSTR pbstrRetVal);
        [propget, helpcontext(0x0003d096)]
        HRESULT _stdcall Value(
                        [in, lcid] long lcid, 
                        [out, retval] VARIANT* pvargRetVal);
        [propput, helpcontext(0x0003d096)]
        HRESULT _stdcall Value(
                        [in, lcid] long lcid, 
                        [in] VARIANT pvargRetVal);
        [propget, helpcontext(0x0003d097)]
        HRESULT _stdcall Type(
                        [in, lcid] long lcid, 
                        [out, retval] MsoDocProperties* ptypeRetVal);
        [propput, helpcontext(0x0003d097)]
        HRESULT _stdcall Type(
                        [in, lcid] long lcid, 
                        [in] MsoDocProperties ptypeRetVal);
        [propget, helpcontext(0x0003d098)]
        HRESULT _stdcall LinkToContent([out, retval] VARIANT_BOOL* pfLinkRetVal);
        [propput, helpcontext(0x0003d098)]
        HRESULT _stdcall LinkToContent([in] VARIANT_BOOL pfLinkRetVal);
        [propget, helpcontext(0x0003d099)]
        HRESULT _stdcall LinkSource([out, retval] BSTR* pbstrSourceRetVal);
        [propput, helpcontext(0x0003d099)]
        HRESULT _stdcall LinkSource([in] BSTR pbstrSourceRetVal);
        [propget, helpcontext(0x0003d09f)]
        HRESULT _stdcall Application([out, retval] IDispatch** ppidisp);
        [propget, helpcontext(0x0003d0a0)]
        HRESULT _stdcall Creator([out, retval] long* plCreator);
    };

    [
      odl,
      uuid(2DF8D04D-5BFA-101B-BDE5-00AA0044DE52),
      helpcontext(0x0003d09a)
    ]
    interface DocumentProperties : IDispatch {
        [propget, helpcontext(0x0003d09b)]
        IDispatch* _stdcall Parent();
        [propget, helpcontext(0x0003d09c)]
        HRESULT _stdcall Item(
                        [in] VARIANT Index, 
                        [in, lcid] long lcid, 
                        [out, retval] DocumentProperty** ppIDocProp);
        [propget, helpcontext(0x0003d09d)]
        HRESULT _stdcall Count([out, retval] long* pc);
        [helpcontext(0x0003d09e)]
        HRESULT _stdcall Add(
                        [in] BSTR Name, 
                        [in] VARIANT_BOOL LinkToContent, 
                        [in, optional] VARIANT Type, 
                        [in, optional] VARIANT Value, 
                        [in, optional] VARIANT LinkSource, 
                        [in, lcid] long lcid, 
                        [out, retval] DocumentProperty** ppIDocProp);
        [propget]
        HRESULT _stdcall _NewEnum([out, retval] IUnknown** ppunkEnum);
        [propget, helpcontext(0x0003d0a1)]
        HRESULT _stdcall Application([out, retval] IDispatch** ppidisp);
        [propget, helpcontext(0x0003d0a2)]
        HRESULT _stdcall Creator([out, retval] long* plCreator);
    };

    typedef enum {
        msoOptionsNew = 1,
        msoOptionsAdd = 2,
        msoOptionsWithin = 3
    } MsoFileFindOptions;

    typedef enum {
        msoViewFileInfo = 1,
        msoViewPreview = 2,
        msoViewSummaryInfo = 3
    } MsoFileFindView;

    typedef enum {
        msoFileFindSortbyAuthor = 1,
        msoFileFindSortbyDateCreated = 2,
        msoFileFindSortbyLastSavedBy = 3,
        msoFileFindSortbyDateSaved = 4,
        msoFileFindSortbyFileName = 5,
        msoFileFindSortbySize = 6,
        msoFileFindSortbyTitle = 7
    } MsoFileFindSortBy;

    typedef enum {
        msoListbyName = 1,
        msoListbyTitle = 2
    } MsoFileFindListBy;

    [
      odl,
      uuid(000C0338-0000-0000-C000-000000000046),
      helpcontext(0x00033838),
      dual,
      nonextensible,
      oleautomation
    ]
    interface IFoundFiles : IDispatch {
        [id(00000000), propget, helpcontext(0x00033839)]
        HRESULT Item(
                        [in] int Index, 
                        [out, retval] BSTR* pbstr);
        [id(0x60020001), propget, helpcontext(0x0003383a)]
        HRESULT Count([out, retval] int* pCount);
        [id(0xfffffffc), propget, restricted]
        HRESULT _NewEnum([out, retval] IUnknown** ppunkEnum);
    };

    [
      odl,
      uuid(000C0337-0000-0000-C000-000000000046),
      helpcontext(0x00033c20),
      dual,
      nonextensible,
      oleautomation
    ]
    interface IFind : IDispatch {
        [id(00000000), propget, helpcontext(0x00033c21)]
        HRESULT SearchPath([out, retval] BSTR* pbstr);
        [id(0x60020001), propget, helpcontext(0x00033c22)]
        HRESULT Name([out, retval] BSTR* pbstr);
        [id(0x60020002), propget, helpcontext(0x00033c23)]
        HRESULT SubDir([out, retval] VARIANT_BOOL* retval);
        [id(0x60020003), propget, helpcontext(0x00033c24)]
        HRESULT Title([out, retval] BSTR* pbstr);
        [id(0x60020004), propget, helpcontext(0x00033c25)]
        HRESULT Author([out, retval] BSTR* pbstr);
        [id(0x60020005), propget, helpcontext(0x00033c26)]
        HRESULT Keywords([out, retval] BSTR* pbstr);
        [id(0x60020006), propget, helpcontext(0x00033c27)]
        HRESULT Subject([out, retval] BSTR* pbstr);
        [id(0x60020007), propget, helpcontext(0x00033c28)]
        HRESULT Options([out, retval] MsoFileFindOptions* penmOptions);
        [id(0x60020008), propget, helpcontext(0x00033c29)]
        HRESULT MatchCase([out, retval] VARIANT_BOOL* retval);
        [id(0x60020009), propget, helpcontext(0x00033c2a)]
        HRESULT Text([out, retval] BSTR* pbstr);
        [id(0x6002000a), propget, helpcontext(0x00033c2b)]
        HRESULT PatternMatch([out, retval] VARIANT_BOOL* retval);
        [id(0x6002000b), propget, helpcontext(0x00033c2c)]
        HRESULT DateSavedFrom([out, retval] VARIANT* pdatSavedFrom);
        [id(0x6002000c), propget, helpcontext(0x00033c2d)]
        HRESULT DateSavedTo([out, retval] VARIANT* pdatSavedTo);
        [id(0x6002000d), propget, helpcontext(0x00033c2e)]
        HRESULT SavedBy([out, retval] BSTR* pbstr);
        [id(0x6002000e), propget, helpcontext(0x00033c2f)]
        HRESULT DateCreatedFrom([out, retval] VARIANT* pdatCreatedFrom);
        [id(0x6002000f), propget, helpcontext(0x00033c30)]
        HRESULT DateCreatedTo([out, retval] VARIANT* pdatCreatedTo);
        [id(0x60020010), propget, helpcontext(0x00033c31)]
        HRESULT View([out, retval] MsoFileFindView* penmView);
        [id(0x60020011), propget, helpcontext(0x00033c32)]
        HRESULT SortBy([out, retval] MsoFileFindSortBy* penmSortBy);
        [id(0x60020012), propget, helpcontext(0x00033c33)]
        HRESULT ListBy([out, retval] MsoFileFindListBy* penmListBy);
        [id(0x60020013), propget, helpcontext(0x00033c34)]
        HRESULT SelectedFile([out, retval] int* pintSelectedFile);
        [id(0x60020014), propget, helpcontext(0x00033c35)]
        HRESULT Results([out, retval] IFoundFiles** pdisp);
        [id(0x60020015), helpcontext(0x00033c36)]
        HRESULT Show([out, retval] int* pRows);
        [id(00000000), propput, helpcontext(0x00033c21)]
        HRESULT SearchPath([in] BSTR pbstr);
        [id(0x60020001), propput, helpcontext(0x00033c22)]
        HRESULT Name([in] BSTR pbstr);
        [id(0x60020002), propput, helpcontext(0x00033c23)]
        HRESULT SubDir([in] VARIANT_BOOL retval);
        [id(0x60020003), propput, helpcontext(0x00033c24)]
        HRESULT Title([in] BSTR pbstr);
        [id(0x60020004), propput, helpcontext(0x00033c25)]
        HRESULT Author([in] BSTR pbstr);
        [id(0x60020005), propput, helpcontext(0x00033c26)]
        HRESULT Keywords([in] BSTR pbstr);
        [id(0x60020006), propput, helpcontext(0x00033c27)]
        HRESULT Subject([in] BSTR pbstr);
        [id(0x60020007), propput, helpcontext(0x00033c28)]
        HRESULT Options([in] MsoFileFindOptions penmOptions);
        [id(0x60020008), propput, helpcontext(0x00033c29)]
        HRESULT MatchCase([in] VARIANT_BOOL retval);
        [id(0x60020009), propput, helpcontext(0x00033c2a)]
        HRESULT Text([in] BSTR pbstr);
        [id(0x6002000a), propput, helpcontext(0x00033c2b)]
        HRESULT PatternMatch([in] VARIANT_BOOL retval);
        [id(0x6002000b), propput, helpcontext(0x00033c2c)]
        HRESULT DateSavedFrom([in] VARIANT pdatSavedFrom);
        [id(0x6002000c), propput, helpcontext(0x00033c2d)]
        HRESULT DateSavedTo([in] VARIANT pdatSavedTo);
        [id(0x6002000d), propput, helpcontext(0x00033c2e)]
        HRESULT SavedBy([in] BSTR pbstr);
        [id(0x6002000e), propput, helpcontext(0x00033c2f)]
        HRESULT DateCreatedFrom([in] VARIANT pdatCreatedFrom);
        [id(0x6002000f), propput, helpcontext(0x00033c30)]
        HRESULT DateCreatedTo([in] VARIANT pdatCreatedTo);
        [id(0x60020010), propput, helpcontext(0x00033c31)]
        HRESULT View([in] MsoFileFindView penmView);
        [id(0x60020011), propput, helpcontext(0x00033c32)]
        HRESULT SortBy([in] MsoFileFindSortBy penmSortBy);
        [id(0x60020012), propput, helpcontext(0x00033c33)]
        HRESULT ListBy([in] MsoFileFindListBy penmListBy);
        [id(0x60020013), propput, helpcontext(0x00033c34)]
        HRESULT SelectedFile([in] int pintSelectedFile);
        [id(0x6002002a), helpcontext(0x00033c37)]
        HRESULT Execute();
        [id(0x6002002b), helpcontext(0x00033c38)]
        HRESULT Load([in] BSTR bstrQueryName);
        [id(0x6002002c), helpcontext(0x00033c39)]
        HRESULT Save([in] BSTR bstrQueryName);
        [id(0x6002002d), helpcontext(0x00033c3a)]
        HRESULT Delete([in] BSTR bstrQueryName);
        [id(0x6002002e), propget, helpcontext(0x00033c3b)]
        HRESULT FileType([out, retval] long* plFileType);
        [id(0x6002002e), propput, helpcontext(0x00033c3b)]
        HRESULT FileType([in] long plFileType);
    };

    typedef enum {
        msoLastModifiedYesterday = 1,
        msoLastModifiedToday = 2,
        msoLastModifiedLastWeek = 3,
        msoLastModifiedThisWeek = 4,
        msoLastModifiedLastMonth = 5,
        msoLastModifiedThisMonth = 6,
        msoLastModifiedAnyTime = 7
    } MsoLastModified;

    typedef enum {
        msoSortByFileName = 1,
        msoSortBySize = 2,
        msoSortByFileType = 3,
        msoSortByLastModified = 4,
        msoSortByNone = 5
    } MsoSortBy;

    typedef enum {
        msoSortOrderAscending = 1,
        msoSortOrderDescending = 2
    } MsoSortOrder;

    typedef enum {
        msoConnectorAnd = 1,
        msoConnectorOr = 2
    } MsoConnector;

    typedef enum {
        msoConditionFileTypeAllFiles = 1,
        msoConditionFileTypeOfficeFiles = 2,
        msoConditionFileTypeWordDocuments = 3,
        msoConditionFileTypeExcelWorkbooks = 4,
        msoConditionFileTypePowerPointPresentations = 5,
        msoConditionFileTypeBinders = 6,
        msoConditionFileTypeDatabases = 7,
        msoConditionFileTypeTemplates = 8,
        msoConditionIncludes = 9,
        msoConditionIncludesPhrase = 10,
        msoConditionBeginsWith = 11,
        msoConditionEndsWith = 12,
        msoConditionIncludesNearEachOther = 13,
        msoConditionIsExactly = 14,
        msoConditionIsNot = 15,
        msoConditionYesterday = 16,
        msoConditionToday = 17,
        msoConditionTomorrow = 18,
        msoConditionLastWeek = 19,
        msoConditionThisWeek = 20,
        msoConditionNextWeek = 21,
        msoConditionLastMonth = 22,
        msoConditionThisMonth = 23,
        msoConditionNextMonth = 24,
        msoConditionAnytime = 25,
        msoConditionAnytimeBetween = 26,
        msoConditionOn = 27,
        msoConditionOnOrAfter = 28,
        msoConditionOnOrBefore = 29,
        msoConditionInTheNext = 30,
        msoConditionInTheLast = 31,
        msoConditionEquals = 32,
        msoConditionDoesNotEqual = 33,
        msoConditionAnyNumberBetween = 34,
        msoConditionAtMost = 35,
        msoConditionAtLeast = 36,
        msoConditionMoreThan = 37,
        msoConditionLessThan = 38,
        msoConditionIsYes = 39,
        msoConditionIsNo = 40,
        msoConditionIncludesFormsOf = 41,
        msoConditionFreeText = 42,
        msoConditionFileTypeOutlookItems = 43,
        msoConditionFileTypeMailItem = 44,
        msoConditionFileTypeCalendarItem = 45,
        msoConditionFileTypeContactItem = 46,
        msoConditionFileTypeNoteItem = 47,
        msoConditionFileTypeJournalItem = 48,
        msoConditionFileTypeTaskItem = 49,
        msoConditionFileTypePhotoDrawFiles = 50,
        msoConditionFileTypeDataConnectionFiles = 51,
        msoConditionFileTypePublisherFiles = 52,
        msoConditionFileTypeProjectFiles = 53,
        msoConditionFileTypeDocumentImagingFiles = 54,
        msoConditionFileTypeVisioFiles = 55,
        msoConditionFileTypeDesignerFiles = 56,
        msoConditionFileTypeWebPages = 57,
        msoConditionEqualsLow = 58,
        msoConditionEqualsNormal = 59,
        msoConditionEqualsHigh = 60,
        msoConditionNotEqualToLow = 61,
        msoConditionNotEqualToNormal = 62,
        msoConditionNotEqualToHigh = 63,
        msoConditionEqualsNotStarted = 64,
        msoConditionEqualsInProgress = 65,
        msoConditionEqualsCompleted = 66,
        msoConditionEqualsWaitingForSomeoneElse = 67,
        msoConditionEqualsDeferred = 68,
        msoConditionNotEqualToNotStarted = 69,
        msoConditionNotEqualToInProgress = 70,
        msoConditionNotEqualToCompleted = 71,
        msoConditionNotEqualToWaitingForSomeoneElse = 72,
        msoConditionNotEqualToDeferred = 73
    } MsoCondition;

    typedef enum {
        msoFileTypeAllFiles = 1,
        msoFileTypeOfficeFiles = 2,
        msoFileTypeWordDocuments = 3,
        msoFileTypeExcelWorkbooks = 4,
        msoFileTypePowerPointPresentations = 5,
        msoFileTypeBinders = 6,
        msoFileTypeDatabases = 7,
        msoFileTypeTemplates = 8,
        msoFileTypeOutlookItems = 9,
        msoFileTypeMailItem = 10,
        msoFileTypeCalendarItem = 11,
        msoFileTypeContactItem = 12,
        msoFileTypeNoteItem = 13,
        msoFileTypeJournalItem = 14,
        msoFileTypeTaskItem = 15,
        msoFileTypePhotoDrawFiles = 16,
        msoFileTypeDataConnectionFiles = 17,
        msoFileTypePublisherFiles = 18,
        msoFileTypeProjectFiles = 19,
        msoFileTypeDocumentImagingFiles = 20,
        msoFileTypeVisioFiles = 21,
        msoFileTypeDesignerFiles = 22,
        msoFileTypeWebPages = 23
    } MsoFileType;

    [
      odl,
      uuid(000C0331-0000-0000-C000-000000000046),
      helpcontext(0x00034008),
      dual,
      oleautomation
    ]
    interface FoundFiles : _IMsoDispObj {
        [id(00000000), propget, helpcontext(0x00034009)]
        HRESULT Item(
                        [in] int Index, 
                        [in, lcid] long lcid, 
                        [out, retval] BSTR* pbstrFile);
        [id(0x00000004), propget, helpcontext(0x0003400a)]
        HRESULT Count([out, retval] long* pc);
        [id(0xfffffffc), propget]
        HRESULT _NewEnum([out, retval] IUnknown** ppunkEnum);
    };

    [
      odl,
      uuid(000C0333-0000-0000-C000-000000000046),
      helpcontext(0x000343f0),
      dual,
      nonextensible,
      oleautomation
    ]
    interface PropertyTest : _IMsoDispObj {
        [id(00000000), propget, helpcontext(0x000343f1)]
        HRESULT Name([out, retval] BSTR* pbstrRetVal);
        [id(0x00000002), propget, helpcontext(0x000343f2)]
        HRESULT Condition([out, retval] MsoCondition* pConditionRetVal);
        [id(0x00000003), propget, helpcontext(0x000343f3)]
        HRESULT Value([out, retval] VARIANT* pvargRetVal);
        [id(0x00000004), propget, helpcontext(0x000343f4)]
        HRESULT SecondValue([out, retval] VARIANT* pvargRetVal2);
        [id(0x00000005), propget, helpcontext(0x000343f5)]
        HRESULT Connector([out, retval] MsoConnector* pConnector);
    };

    [
      odl,
      uuid(000C0334-0000-0000-C000-000000000046),
      helpcontext(0x000347d8),
      dual,
      oleautomation
    ]
    interface PropertyTests : _IMsoDispObj {
        [id(00000000), propget, helpcontext(0x000347d9)]
        HRESULT Item(
                        [in] int Index, 
                        [in, lcid] long lcid, 
                        [out, retval] PropertyTest** ppIDocProp);
        [id(0x00000004), propget, helpcontext(0x000347da)]
        HRESULT Count([out, retval] long* pc);
        [id(0x00000005), helpcontext(0x000347db)]
        HRESULT Add(
                        [in] BSTR Name, 
                        [in] MsoCondition Condition, 
                        [in, optional] VARIANT Value, 
                        [in, optional] VARIANT SecondValue, 
                        [in, optional, defaultvalue(1)] MsoConnector Connector);
        [id(0x00000006), helpcontext(0x000347dc)]
        HRESULT Remove([in] int Index);
        [id(0xfffffffc), propget]
        HRESULT _NewEnum([out, retval] IUnknown** ppunkEnum);
    };

    [
      odl,
      uuid(000C0332-0000-0000-C000-000000000046),
      helpcontext(0x00034bc0),
      dual,
      oleautomation
    ]
    interface FileSearch : _IMsoDispObj {
        [id(0x00000001), propget, helpcontext(0x00034bc1)]
        HRESULT SearchSubFolders([out, retval] VARIANT_BOOL* SearchSubFoldersRetVal);
        [id(0x00000001), propput, helpcontext(0x00034bc1)]
        HRESULT SearchSubFolders([in] VARIANT_BOOL SearchSubFoldersRetVal);
        [id(0x00000002), propget, helpcontext(0x00034bc2)]
        HRESULT MatchTextExactly([out, retval] VARIANT_BOOL* MatchTextRetVal);
        [id(0x00000002), propput, helpcontext(0x00034bc2)]
        HRESULT MatchTextExactly([in] VARIANT_BOOL MatchTextRetVal);
        [id(0x00000003), propget, helpcontext(0x00034bc3)]
        HRESULT MatchAllWordForms([out, retval] VARIANT_BOOL* MatchAllWordFormsRetVal);
        [id(0x00000003), propput, helpcontext(0x00034bc3)]
        HRESULT MatchAllWordForms([in] VARIANT_BOOL MatchAllWordFormsRetVal);
        [id(0x00000004), propget, helpcontext(0x00034bc4)]
        HRESULT FileName([out, retval] BSTR* FileNameRetVal);
        [id(0x00000004), propput, helpcontext(0x00034bc4)]
        HRESULT FileName([in] BSTR FileNameRetVal);
        [id(0x00000005), propget, helpcontext(0x00034bc5)]
        HRESULT FileType([out, retval] MsoFileType* FileTypeRetVal);
        [id(0x00000005), propput, helpcontext(0x00034bc5)]
        HRESULT FileType([in] MsoFileType FileTypeRetVal);
        [id(0x00000006), propget, helpcontext(0x00034bc6)]
        HRESULT LastModified([out, retval] MsoLastModified* LastModifiedRetVal);
        [id(0x00000006), propput, helpcontext(0x00034bc6)]
        HRESULT LastModified([in] MsoLastModified LastModifiedRetVal);
        [id(0x00000007), propget, helpcontext(0x00034bc7)]
        HRESULT TextOrProperty([out, retval] BSTR* TextOrProperty);
        [id(0x00000007), propput, helpcontext(0x00034bc7)]
        HRESULT TextOrProperty([in] BSTR TextOrProperty);
        [id(0x00000008), propget, helpcontext(0x00034bc8)]
        HRESULT LookIn([out, retval] BSTR* LookInRetVal);
        [id(0x00000008), propput, helpcontext(0x00034bc8)]
        HRESULT LookIn([in] BSTR LookInRetVal);
        [id(0x00000009), helpcontext(0x00034bc9)]
        HRESULT Execute(
                        [in, optional, defaultvalue(1)] MsoSortBy SortBy, 
                        [in, optional, defaultvalue(1)] MsoSortOrder SortOrder, 
                        [in, optional, defaultvalue(-1)] VARIANT_BOOL AlwaysAccurate, 
                        [out, retval] int* pRet);
        [id(0x0000000a), helpcontext(0x00034bca)]
        HRESULT NewSearch();
        [id(0x0000000b), propget, helpcontext(0x00034bcb)]
        HRESULT FoundFiles([out, retval] FoundFiles** FoundFilesRet);
        [id(0x0000000c), propget, helpcontext(0x00034bcc)]
        HRESULT PropertyTests([out, retval] PropertyTests** PropTestsRet);
        [id(0x0000000d), propget, helpcontext(0x00034bcd)]
        HRESULT SearchScopes([out, retval] SearchScopes** SearchScopesRet);
        [id(0x0000000e), propget, helpcontext(0x00034bce)]
        HRESULT SearchFolders([out, retval] SearchFolders** SearchFoldersRet);
        [id(0x00000010), propget, helpcontext(0x00034bd0)]
        HRESULT FileTypes([out, retval] FileTypes** FileTypesRet);
        [id(0x00000011), helpcontext(0x00034bd1)]
        HRESULT RefreshScopes();
    };

    [
      odl,
      uuid(000C033A-0000-0000-C000-000000000046),
      helpcontext(0x00035778),
      dual,
      nonextensible,
      oleautomation
    ]
    interface COMAddIn : _IMsoDispObj {
        [id(00000000), propget, helpcontext(0x00035779)]
        HRESULT Description([out, retval] BSTR* RetValue);
        [id(00000000), propput, helpcontext(0x00035779)]
        HRESULT Description([in] BSTR RetValue);
        [id(0x00000003), propget, helpcontext(0x0003577b)]
        HRESULT ProgId([out, retval] BSTR* RetValue);
        [id(0x00000004), propget, helpcontext(0x0003577c)]
        HRESULT Guid([out, retval] BSTR* RetValue);
        [id(0x00000006), propget, helpcontext(0x0003577d)]
        HRESULT Connect([out, retval] VARIANT_BOOL* RetValue);
        [id(0x00000006), propput, helpcontext(0x0003577d)]
        HRESULT Connect([in] VARIANT_BOOL RetValue);
        [id(0x00000007), propget, helpcontext(0x0003577f)]
        HRESULT Object([out, retval] IDispatch** RetValue);
        [id(0x00000007), propput, helpcontext(0x0003577f)]
        HRESULT Object([in] IDispatch* RetValue);
        [id(0x00000008), propget, helpcontext(0x00035781)]
        HRESULT Parent([out, retval] IDispatch** retval);
    };

    [
      odl,
      uuid(000C0339-0000-0000-C000-000000000046),
      helpcontext(0x00035b60),
      dual,
      nonextensible,
      oleautomation
    ]
    interface COMAddIns : _IMsoDispObj {
        [id(00000000), helpcontext(0x00035b61)]
        HRESULT Item(
                        [in] VARIANT* Index, 
                        [out, retval] COMAddIn** RetValue);
        [id(0x00000001), propget, helpcontext(0x00035b62)]
        HRESULT Count([out, retval] long* RetValue);
        [id(0xfffffffc), propget, restricted, helpcontext(0x00035b63)]
        HRESULT _NewEnum([out, retval] IUnknown** RetValue);
        [id(0x00000002), helpcontext(0x00035b64)]
        HRESULT Update();
        [id(0x00000003), propget, helpcontext(0x00035b65)]
        HRESULT Parent([out, retval] IDispatch** ppidisp);
        [id(0x00000004), hidden, helpcontext(0x00035b66)]
        HRESULT SetAppModal([in] VARIANT_BOOL varfModal);
    };

    typedef enum {
        msoLanguageIDMixed = 0xfffffffe,
        msoLanguageIDNone = 0,
        msoLanguageIDNoProofing = 1024,
        msoLanguageIDAfrikaans = 1078,
        msoLanguageIDAlbanian = 1052,
        msoLanguageIDAmharic = 1118,
        msoLanguageIDArabicAlgeria = 5121,
        msoLanguageIDArabicBahrain = 15361,
        msoLanguageIDArabicEgypt = 3073,
        msoLanguageIDArabicIraq = 2049,
        msoLanguageIDArabicJordan = 11265,
        msoLanguageIDArabicKuwait = 13313,
        msoLanguageIDArabicLebanon = 12289,
        msoLanguageIDArabicLibya = 4097,
        msoLanguageIDArabicMorocco = 6145,
        msoLanguageIDArabicOman = 8193,
        msoLanguageIDArabicQatar = 16385,
        msoLanguageIDArabic = 1025,
        msoLanguageIDArabicSyria = 10241,
        msoLanguageIDArabicTunisia = 7169,
        msoLanguageIDArabicUAE = 14337,
        msoLanguageIDArabicYemen = 9217,
        msoLanguageIDArmenian = 1067,
        msoLanguageIDAssamese = 1101,
        msoLanguageIDAzeriCyrillic = 2092,
        msoLanguageIDAzeriLatin = 1068,
        msoLanguageIDBasque = 1069,
        msoLanguageIDByelorussian = 1059,
        msoLanguageIDBengali = 1093,
        msoLanguageIDBosnian = 4122,
        msoLanguageIDBosnianBosniaHerzegovinaCyrillic = 8218,
        msoLanguageIDBosnianBosniaHerzegovinaLatin = 5146,
        msoLanguageIDBulgarian = 1026,
        msoLanguageIDBurmese = 1109,
        msoLanguageIDCatalan = 1027,
        msoLanguageIDChineseHongKongSAR = 3076,
        msoLanguageIDChineseMacaoSAR = 5124,
        msoLanguageIDSimplifiedChinese = 2052,
        msoLanguageIDChineseSingapore = 4100,
        msoLanguageIDTraditionalChinese = 1028,
        msoLanguageIDCherokee = 1116,
        msoLanguageIDCroatian = 1050,
        msoLanguageIDCzech = 1029,
        msoLanguageIDDanish = 1030,
        msoLanguageIDDivehi = 1125,
        msoLanguageIDBelgianDutch = 2067,
        msoLanguageIDDutch = 1043,
        msoLanguageIDDzongkhaBhutan = 2129,
        msoLanguageIDEdo = 1126,
        msoLanguageIDEnglishAUS = 3081,
        msoLanguageIDEnglishBelize = 10249,
        msoLanguageIDEnglishCanadian = 4105,
        msoLanguageIDEnglishCaribbean = 9225,
        msoLanguageIDEnglishIndonesia = 14345,
        msoLanguageIDEnglishIreland = 6153,
        msoLanguageIDEnglishJamaica = 8201,
        msoLanguageIDEnglishNewZealand = 5129,
        msoLanguageIDEnglishPhilippines = 13321,
        msoLanguageIDEnglishSouthAfrica = 7177,
        msoLanguageIDEnglishTrinidadTobago = 11273,
        msoLanguageIDEnglishUK = 2057,
        msoLanguageIDEnglishUS = 1033,
        msoLanguageIDEnglishZimbabwe = 12297,
        msoLanguageIDEstonian = 1061,
        msoLanguageIDFaeroese = 1080,
        msoLanguageIDFarsi = 1065,
        msoLanguageIDFilipino = 1124,
        msoLanguageIDFinnish = 1035,
        msoLanguageIDBelgianFrench = 2060,
        msoLanguageIDFrenchCameroon = 11276,
        msoLanguageIDFrenchCanadian = 3084,
        msoLanguageIDFrenchCotedIvoire = 12300,
        msoLanguageIDFrench = 1036,
        msoLanguageIDFrenchHaiti = 15372,
        msoLanguageIDFrenchLuxembourg = 5132,
        msoLanguageIDFrenchMali = 13324,
        msoLanguageIDFrenchMonaco = 6156,
        msoLanguageIDFrenchMorocco = 14348,
        msoLanguageIDFrenchReunion = 8204,
        msoLanguageIDFrenchSenegal = 10252,
        msoLanguageIDSwissFrench = 4108,
        msoLanguageIDFrenchWestIndies = 7180,
        msoLanguageIDFrenchZaire = 9228,
        msoLanguageIDFrisianNetherlands = 1122,
        msoLanguageIDFulfulde = 1127,
        msoLanguageIDGaelicIreland = 2108,
        msoLanguageIDGaelicScotland = 1084,
        msoLanguageIDGalician = 1110,
        msoLanguageIDGeorgian = 1079,
        msoLanguageIDGermanAustria = 3079,
        msoLanguageIDGerman = 1031,
        msoLanguageIDGermanLiechtenstein = 5127,
        msoLanguageIDGermanLuxembourg = 4103,
        msoLanguageIDSwissGerman = 2055,
        msoLanguageIDGreek = 1032,
        msoLanguageIDGuarani = 1140,
        msoLanguageIDGujarati = 1095,
        msoLanguageIDHausa = 1128,
        msoLanguageIDHawaiian = 1141,
        msoLanguageIDHebrew = 1037,
        msoLanguageIDHindi = 1081,
        msoLanguageIDHungarian = 1038,
        msoLanguageIDIbibio = 1129,
        msoLanguageIDIcelandic = 1039,
        msoLanguageIDIgbo = 1136,
        msoLanguageIDIndonesian = 1057,
        msoLanguageIDInuktitut = 1117,
        msoLanguageIDItalian = 1040,
        msoLanguageIDSwissItalian = 2064,
        msoLanguageIDJapanese = 1041,
        msoLanguageIDKannada = 1099,
        msoLanguageIDKanuri = 1137,
        msoLanguageIDKashmiri = 1120,
        msoLanguageIDKashmiriDevanagari = 2144,
        msoLanguageIDKazakh = 1087,
        msoLanguageIDKhmer = 1107,
        msoLanguageIDKirghiz = 1088,
        msoLanguageIDKonkani = 1111,
        msoLanguageIDKorean = 1042,
        msoLanguageIDKyrgyz = 1088,
        msoLanguageIDLatin = 1142,
        msoLanguageIDLao = 1108,
        msoLanguageIDLatvian = 1062,
        msoLanguageIDLithuanian = 1063,
        msoLanguageIDMacedonian = 1071,
        msoLanguageIDMalaysian = 1086,
        msoLanguageIDMalayBruneiDarussalam = 2110,
        msoLanguageIDMalayalam = 1100,
        msoLanguageIDMaltese = 1082,
        msoLanguageIDManipuri = 1112,
        msoLanguageIDMaori = 1153,
        msoLanguageIDMarathi = 1102,
        msoLanguageIDMongolian = 1104,
        msoLanguageIDNepali = 1121,
        msoLanguageIDNorwegianBokmol = 1044,
        msoLanguageIDNorwegianNynorsk = 2068,
        msoLanguageIDOriya = 1096,
        msoLanguageIDOromo = 1138,
        msoLanguageIDPashto = 1123,
        msoLanguageIDPolish = 1045,
        msoLanguageIDBrazilianPortuguese = 1046,
        msoLanguageIDPortuguese = 2070,
        msoLanguageIDPunjabi = 1094,
        msoLanguageIDQuechuaBolivia = 1131,
        msoLanguageIDQuechuaEcuador = 2155,
        msoLanguageIDQuechuaPeru = 3179,
        msoLanguageIDRhaetoRomanic = 1047,
        msoLanguageIDRomanianMoldova = 2072,
        msoLanguageIDRomanian = 1048,
        msoLanguageIDRussianMoldova = 2073,
        msoLanguageIDRussian = 1049,
        msoLanguageIDSamiLappish = 1083,
        msoLanguageIDSanskrit = 1103,
        msoLanguageIDSepedi = 1132,
        msoLanguageIDSerbianBosniaHerzegovinaCyrillic = 7194,
        msoLanguageIDSerbianBosniaHerzegovinaLatin = 6170,
        msoLanguageIDSerbianCyrillic = 3098,
        msoLanguageIDSerbianLatin = 2074,
        msoLanguageIDSesotho = 1072,
        msoLanguageIDSindhi = 1113,
        msoLanguageIDSindhiPakistan = 2137,
        msoLanguageIDSinhalese = 1115,
        msoLanguageIDSlovak = 1051,
        msoLanguageIDSlovenian = 1060,
        msoLanguageIDSomali = 1143,
        msoLanguageIDSorbian = 1070,
        msoLanguageIDSpanishArgentina = 11274,
        msoLanguageIDSpanishBolivia = 16394,
        msoLanguageIDSpanishChile = 13322,
        msoLanguageIDSpanishColombia = 9226,
        msoLanguageIDSpanishCostaRica = 5130,
        msoLanguageIDSpanishDominicanRepublic = 7178,
        msoLanguageIDSpanishEcuador = 12298,
        msoLanguageIDSpanishElSalvador = 17418,
        msoLanguageIDSpanishGuatemala = 4106,
        msoLanguageIDSpanishHonduras = 18442,
        msoLanguageIDMexicanSpanish = 2058,
        msoLanguageIDSpanishNicaragua = 19466,
        msoLanguageIDSpanishPanama = 6154,
        msoLanguageIDSpanishParaguay = 15370,
        msoLanguageIDSpanishPeru = 10250,
        msoLanguageIDSpanishPuertoRico = 20490,
        msoLanguageIDSpanishModernSort = 3082,
        msoLanguageIDSpanish = 1034,
        msoLanguageIDSpanishUruguay = 14346,
        msoLanguageIDSpanishVenezuela = 8202,
        msoLanguageIDSutu = 1072,
        msoLanguageIDSwahili = 1089,
        msoLanguageIDSwedishFinland = 2077,
        msoLanguageIDSwedish = 1053,
        msoLanguageIDSyriac = 1114,
        msoLanguageIDTajik = 1064,
        msoLanguageIDTamil = 1097,
        msoLanguageIDTamazight = 1119,
        msoLanguageIDTamazightLatin = 2143,
        msoLanguageIDTatar = 1092,
        msoLanguageIDTelugu = 1098,
        msoLanguageIDThai = 1054,
        msoLanguageIDTibetan = 1105,
        msoLanguageIDTigrignaEthiopic = 1139,
        msoLanguageIDTigrignaEritrea = 2163,
        msoLanguageIDTsonga = 1073,
        msoLanguageIDTswana = 1074,
        msoLanguageIDTurkish = 1055,
        msoLanguageIDTurkmen = 1090,
        msoLanguageIDUkrainian = 1058,
        msoLanguageIDUrdu = 1056,
        msoLanguageIDUzbekCyrillic = 2115,
        msoLanguageIDUzbekLatin = 1091,
        msoLanguageIDVenda = 1075,
        msoLanguageIDVietnamese = 1066,
        msoLanguageIDWelsh = 1106,
        msoLanguageIDXhosa = 1076,
        msoLanguageIDYi = 1144,
        msoLanguageIDYiddish = 1085,
        msoLanguageIDYoruba = 1130,
        msoLanguageIDZulu = 1077
    } MsoLanguageID;

    [
      odl,
      uuid(000C0353-0000-0000-C000-000000000046),
      helpcontext(0x00038658),
      dual,
      nonextensible,
      oleautomation
    ]
    interface LanguageSettings : _IMsoDispObj {
        [id(0x00000001), propget, helpcontext(0x00038659)]
        HRESULT LanguageID(
                        [in] MsoAppLanguageID Id, 
                        [out, retval] int* plid);
        [id(0x00000002), propget, helpcontext(0x0003865a)]
        HRESULT LanguagePreferredForEditing(
                        [in] MsoLanguageID lid, 
                        [out, retval] VARIANT_BOOL* pf);
        [id(0x00000003), propget, helpcontext(0x0003865b)]
        HRESULT Parent([out, retval] IDispatch** ppidisp);
    };

    [
      odl,
      uuid(55F88892-7708-11D1-ACEB-006008961DA5),
      helpcontext(0x00037aa0),
      hidden,
      dual,
      nonextensible,
      oleautomation
    ]
    interface ICommandBarsEvents : IDispatch {
        [id(0x00000001), helpcontext(0x00037aa1)]
        void OnUpdate();
    };

    [
      uuid(000C0352-0000-0000-C000-000000000046),
      hidden
    ]
    dispinterface _CommandBarsEvents {
        properties:
        methods:
            [id(0x60000000), restricted]
            void QueryInterface(
                            [in] GUID* riid, 
                            [out] void** ppvObj);
            [id(0x60000001), restricted]
            unsigned long AddRef();
            [id(0x60000002), restricted]
            unsigned long Release();
            [id(0x60010000), restricted]
            void GetTypeInfoCount([out] unsigned int* pctinfo);
            [id(0x60010001), restricted]
            void GetTypeInfo(
                            [in] unsigned int itinfo, 
                            [in] unsigned long lcid, 
                            [out] void** pptinfo);
            [id(0x60010002), restricted]
            void GetIDsOfNames(
                            [in] GUID* riid, 
                            [in] char** rgszNames, 
                            [in] unsigned int cNames, 
                            [in] unsigned long lcid, 
                            [out] long* rgdispid);
            [id(0x60010003), restricted]
            void Invoke(
                            [in] long dispidMember, 
                            [in] GUID* riid, 
                            [in] unsigned long lcid, 
                            [in] unsigned short wFlags, 
                            [in] DISPPARAMS* pdispparams, 
                            [out] VARIANT* pvarResult, 
                            [out] EXCEPINFO* pexcepinfo, 
                            [out] unsigned int* puArgErr);
            [id(0x00000001), helpcontext(0x00037aa1)]
            void OnUpdate();
    };

    [
      uuid(55F88893-7708-11D1-ACEB-006008961DA5),
      helpcontext(0x0003b150),
      noncreatable
    ]
    coclass CommandBars {
        [default] interface _CommandBars;
        [default, source] dispinterface _CommandBarsEvents;
    };

    [
      odl,
      uuid(55F88896-7708-11D1-ACEB-006008961DA5),
      helpcontext(0x00037e88),
      hidden,
      dual,
      nonextensible,
      oleautomation
    ]
    interface ICommandBarComboBoxEvents : IDispatch {
        [id(0x00000001), helpcontext(0x00037e89)]
        void Change([in] CommandBarComboBox* Ctrl);
    };

    [
      uuid(000C0354-0000-0000-C000-000000000046),
      hidden
    ]
    dispinterface _CommandBarComboBoxEvents {
        properties:
        methods:
            [id(0x60000000), restricted]
            void QueryInterface(
                            [in] GUID* riid, 
                            [out] void** ppvObj);
            [id(0x60000001), restricted]
            unsigned long AddRef();
            [id(0x60000002), restricted]
            unsigned long Release();
            [id(0x60010000), restricted]
            void GetTypeInfoCount([out] unsigned int* pctinfo);
            [id(0x60010001), restricted]
            void GetTypeInfo(
                            [in] unsigned int itinfo, 
                            [in] unsigned long lcid, 
                            [out] void** pptinfo);
            [id(0x60010002), restricted]
            void GetIDsOfNames(
                            [in] GUID* riid, 
                            [in] char** rgszNames, 
                            [in] unsigned int cNames, 
                            [in] unsigned long lcid, 
                            [out] long* rgdispid);
            [id(0x60010003), restricted]
            void Invoke(
                            [in] long dispidMember, 
                            [in] GUID* riid, 
                            [in] unsigned long lcid, 
                            [in] unsigned short wFlags, 
                            [in] DISPPARAMS* pdispparams, 
                            [out] VARIANT* pvarResult, 
                            [out] EXCEPINFO* pexcepinfo, 
                            [out] unsigned int* puArgErr);
            [id(0x00000001), helpcontext(0x00037e89)]
            void Change([in] CommandBarComboBox* Ctrl);
    };

    [
      uuid(55F88897-7708-11D1-ACEB-006008961DA5),
      helpcontext(0x0003b538),
      noncreatable
    ]
    coclass CommandBarComboBox {
        [default] interface _CommandBarComboBox;
        [default, source] dispinterface _CommandBarComboBoxEvents;
    };

    [
      odl,
      uuid(55F88890-7708-11D1-ACEB-006008961DA5),
      helpcontext(0x00038270),
      hidden,
      dual,
      nonextensible,
      oleautomation
    ]
    interface ICommandBarButtonEvents : IDispatch {
        [id(0x00000001), helpcontext(0x00038271)]
        void Click(
                        [in] CommandBarButton* Ctrl, 
                        [in, out] VARIANT_BOOL* CancelDefault);
    };

    [
      uuid(000C0351-0000-0000-C000-000000000046),
      hidden
    ]
    dispinterface _CommandBarButtonEvents {
        properties:
        methods:
            [id(0x60000000), restricted]
            void QueryInterface(
                            [in] GUID* riid, 
                            [out] void** ppvObj);
            [id(0x60000001), restricted]
            unsigned long AddRef();
            [id(0x60000002), restricted]
            unsigned long Release();
            [id(0x60010000), restricted]
            void GetTypeInfoCount([out] unsigned int* pctinfo);
            [id(0x60010001), restricted]
            void GetTypeInfo(
                            [in] unsigned int itinfo, 
                            [in] unsigned long lcid, 
                            [out] void** pptinfo);
            [id(0x60010002), restricted]
            void GetIDsOfNames(
                            [in] GUID* riid, 
                            [in] char** rgszNames, 
                            [in] unsigned int cNames, 
                            [in] unsigned long lcid, 
                            [out] long* rgdispid);
            [id(0x60010003), restricted]
            void Invoke(
                            [in] long dispidMember, 
                            [in] GUID* riid, 
                            [in] unsigned long lcid, 
                            [in] unsigned short wFlags, 
                            [in] DISPPARAMS* pdispparams, 
                            [out] VARIANT* pvarResult, 
                            [out] EXCEPINFO* pexcepinfo, 
                            [out] unsigned int* puArgErr);
            [id(0x00000001), helpcontext(0x00038271)]
            void Click(
                            [in] CommandBarButton* Ctrl, 
                            [in, out] VARIANT_BOOL* CancelDefault);
    };

    [
      uuid(55F88891-7708-11D1-ACEB-006008961DA5),
      helpcontext(0x0003b920),
      noncreatable
    ]
    coclass CommandBarButton {
        [default] interface _CommandBarButton;
        [default, source] dispinterface _CommandBarButtonEvents;
    };

    typedef enum {
        msoScreenSize544x376 = 0,
        msoScreenSize640x480 = 1,
        msoScreenSize720x512 = 2,
        msoScreenSize800x600 = 3,
        msoScreenSize1024x768 = 4,
        msoScreenSize1152x882 = 5,
        msoScreenSize1152x900 = 6,
        msoScreenSize1280x1024 = 7,
        msoScreenSize1600x1200 = 8,
        msoScreenSize1800x1440 = 9,
        msoScreenSize1920x1200 = 10
    } MsoScreenSize;

    typedef enum {
        msoCharacterSetArabic = 1,
        msoCharacterSetCyrillic = 2,
        msoCharacterSetEnglishWesternEuropeanOtherLatinScript = 3,
        msoCharacterSetGreek = 4,
        msoCharacterSetHebrew = 5,
        msoCharacterSetJapanese = 6,
        msoCharacterSetKorean = 7,
        msoCharacterSetMultilingualUnicode = 8,
        msoCharacterSetSimplifiedChinese = 9,
        msoCharacterSetThai = 10,
        msoCharacterSetTraditionalChinese = 11,
        msoCharacterSetVietnamese = 12
    } MsoCharacterSet;

    typedef enum {
        msoEncodingThai = 874,
        msoEncodingJapaneseShiftJIS = 932,
        msoEncodingSimplifiedChineseGBK = 936,
        msoEncodingKorean = 949,
        msoEncodingTraditionalChineseBig5 = 950,
        msoEncodingUnicodeLittleEndian = 1200,
        msoEncodingUnicodeBigEndian = 1201,
        msoEncodingCentralEuropean = 1250,
        msoEncodingCyrillic = 1251,
        msoEncodingWestern = 1252,
        msoEncodingGreek = 1253,
        msoEncodingTurkish = 1254,
        msoEncodingHebrew = 1255,
        msoEncodingArabic = 1256,
        msoEncodingBaltic = 1257,
        msoEncodingVietnamese = 1258,
        msoEncodingAutoDetect = 50001,
        msoEncodingJapaneseAutoDetect = 50932,
        msoEncodingSimplifiedChineseAutoDetect = 50936,
        msoEncodingKoreanAutoDetect = 50949,
        msoEncodingTraditionalChineseAutoDetect = 50950,
        msoEncodingCyrillicAutoDetect = 51251,
        msoEncodingGreekAutoDetect = 51253,
        msoEncodingArabicAutoDetect = 51256,
        msoEncodingISO88591Latin1 = 28591,
        msoEncodingISO88592CentralEurope = 28592,
        msoEncodingISO88593Latin3 = 28593,
        msoEncodingISO88594Baltic = 28594,
        msoEncodingISO88595Cyrillic = 28595,
        msoEncodingISO88596Arabic = 28596,
        msoEncodingISO88597Greek = 28597,
        msoEncodingISO88598Hebrew = 28598,
        msoEncodingISO88599Turkish = 28599,
        msoEncodingISO885915Latin9 = 28605,
        msoEncodingISO88598HebrewLogical = 38598,
        msoEncodingISO2022JPNoHalfwidthKatakana = 50220,
        msoEncodingISO2022JPJISX02021984 = 50221,
        msoEncodingISO2022JPJISX02011989 = 50222,
        msoEncodingISO2022KR = 50225,
        msoEncodingISO2022CNTraditionalChinese = 50227,
        msoEncodingISO2022CNSimplifiedChinese = 50229,
        msoEncodingMacRoman = 10000,
        msoEncodingMacJapanese = 10001,
        msoEncodingMacTraditionalChineseBig5 = 10002,
        msoEncodingMacKorean = 10003,
        msoEncodingMacArabic = 10004,
        msoEncodingMacHebrew = 10005,
        msoEncodingMacGreek1 = 10006,
        msoEncodingMacCyrillic = 10007,
        msoEncodingMacSimplifiedChineseGB2312 = 10008,
        msoEncodingMacRomania = 10010,
        msoEncodingMacUkraine = 10017,
        msoEncodingMacLatin2 = 10029,
        msoEncodingMacIcelandic = 10079,
        msoEncodingMacTurkish = 10081,
        msoEncodingMacCroatia = 10082,
        msoEncodingEBCDICUSCanada = 37,
        msoEncodingEBCDICInternational = 500,
        msoEncodingEBCDICMultilingualROECELatin2 = 870,
        msoEncodingEBCDICGreekModern = 875,
        msoEncodingEBCDICTurkishLatin5 = 1026,
        msoEncodingEBCDICGermany = 20273,
        msoEncodingEBCDICDenmarkNorway = 20277,
        msoEncodingEBCDICFinlandSweden = 20278,
        msoEncodingEBCDICItaly = 20280,
        msoEncodingEBCDICLatinAmericaSpain = 20284,
        msoEncodingEBCDICUnitedKingdom = 20285,
        msoEncodingEBCDICJapaneseKatakanaExtended = 20290,
        msoEncodingEBCDICFrance = 20297,
        msoEncodingEBCDICArabic = 20420,
        msoEncodingEBCDICGreek = 20423,
        msoEncodingEBCDICHebrew = 20424,
        msoEncodingEBCDICKoreanExtended = 20833,
        msoEncodingEBCDICThai = 20838,
        msoEncodingEBCDICIcelandic = 20871,
        msoEncodingEBCDICTurkish = 20905,
        msoEncodingEBCDICRussian = 20880,
        msoEncodingEBCDICSerbianBulgarian = 21025,
        msoEncodingEBCDICJapaneseKatakanaExtendedAndJapanese = 50930,
        msoEncodingEBCDICUSCanadaAndJapanese = 50931,
        msoEncodingEBCDICKoreanExtendedAndKorean = 50933,
        msoEncodingEBCDICSimplifiedChineseExtendedAndSimplifiedChinese = 50935,
        msoEncodingEBCDICUSCanadaAndTraditionalChinese = 50937,
        msoEncodingEBCDICJapaneseLatinExtendedAndJapanese = 50939,
        msoEncodingOEMUnitedStates = 437,
        msoEncodingOEMGreek437G = 737,
        msoEncodingOEMBaltic = 775,
        msoEncodingOEMMultilingualLatinI = 850,
        msoEncodingOEMMultilingualLatinII = 852,
        msoEncodingOEMCyrillic = 855,
        msoEncodingOEMTurkish = 857,
        msoEncodingOEMPortuguese = 860,
        msoEncodingOEMIcelandic = 861,
        msoEncodingOEMHebrew = 862,
        msoEncodingOEMCanadianFrench = 863,
        msoEncodingOEMArabic = 864,
        msoEncodingOEMNordic = 865,
        msoEncodingOEMCyrillicII = 866,
        msoEncodingOEMModernGreek = 869,
        msoEncodingEUCJapanese = 51932,
        msoEncodingEUCChineseSimplifiedChinese = 51936,
        msoEncodingEUCKorean = 51949,
        msoEncodingEUCTaiwaneseTraditionalChinese = 51950,
        msoEncodingISCIIDevanagari = 57002,
        msoEncodingISCIIBengali = 57003,
        msoEncodingISCIITamil = 57004,
        msoEncodingISCIITelugu = 57005,
        msoEncodingISCIIAssamese = 57006,
        msoEncodingISCIIOriya = 57007,
        msoEncodingISCIIKannada = 57008,
        msoEncodingISCIIMalayalam = 57009,
        msoEncodingISCIIGujarati = 57010,
        msoEncodingISCIIPunjabi = 57011,
        msoEncodingArabicASMO = 708,
        msoEncodingArabicTransparentASMO = 720,
        msoEncodingKoreanJohab = 1361,
        msoEncodingTaiwanCNS = 20000,
        msoEncodingTaiwanTCA = 20001,
        msoEncodingTaiwanEten = 20002,
        msoEncodingTaiwanIBM5550 = 20003,
        msoEncodingTaiwanTeleText = 20004,
        msoEncodingTaiwanWang = 20005,
        msoEncodingIA5IRV = 20105,
        msoEncodingIA5German = 20106,
        msoEncodingIA5Swedish = 20107,
        msoEncodingIA5Norwegian = 20108,
        msoEncodingUSASCII = 20127,
        msoEncodingT61 = 20261,
        msoEncodingISO6937NonSpacingAccent = 20269,
        msoEncodingKOI8R = 20866,
        msoEncodingExtAlphaLowercase = 21027,
        msoEncodingKOI8U = 21866,
        msoEncodingEuropa3 = 29001,
        msoEncodingHZGBSimplifiedChinese = 52936,
        msoEncodingSimplifiedChineseGB18030 = 54936,
        msoEncodingUTF7 = 65000,
        msoEncodingUTF8 = 65001
    } MsoEncoding;

    [
      odl,
      uuid(000C0913-0000-0000-C000-000000000046),
      helpcontext(0x00036b00),
      dual,
      nonextensible,
      oleautomation
    ]
    interface WebPageFont : _IMsoDispObj {
        [id(0x0000000a), propget, helpcontext(0x00036b01)]
        HRESULT ProportionalFont([out, retval] BSTR* pstr);
        [id(0x0000000a), propput, helpcontext(0x00036b01)]
        HRESULT ProportionalFont([in] BSTR pstr);
        [id(0x0000000b), propget, helpcontext(0x00036b02)]
        HRESULT ProportionalFontSize([out, retval] single* pf);
        [id(0x0000000b), propput, helpcontext(0x00036b02)]
        HRESULT ProportionalFontSize([in] single pf);
        [id(0x0000000c), propget, helpcontext(0x00036b03)]
        HRESULT FixedWidthFont([out, retval] BSTR* pstr);
        [id(0x0000000c), propput, helpcontext(0x00036b03)]
        HRESULT FixedWidthFont([in] BSTR pstr);
        [id(0x0000000d), propget, helpcontext(0x00036b04)]
        HRESULT FixedWidthFontSize([out, retval] single* pf);
        [id(0x0000000d), propput, helpcontext(0x00036b04)]
        HRESULT FixedWidthFontSize([in] single pf);
    };

    [
      odl,
      uuid(000C0914-0000-0000-C000-000000000046),
      helpcontext(0x00036ee8),
      dual,
      nonextensible,
      oleautomation
    ]
    interface WebPageFonts : _IMsoDispObj {
        [id(0x00000001), propget, helpcontext(0x00036ee9)]
        HRESULT Count([out, retval] int* Count);
        [id(00000000), propget, helpcontext(0x00036eea)]
        HRESULT Item(
                        [in] MsoCharacterSet Index, 
                        [out, retval] WebPageFont** Item);
        [id(0xfffffffc), propget]
        HRESULT _NewEnum([out, retval] IUnknown** _NewEnum);
    };

    typedef enum {
        msoHTMLProjectOpenSourceView = 1,
        msoHTMLProjectOpenTextView = 2
    } MsoHTMLProjectOpen;

    typedef enum {
        msoHTMLProjectStateDocumentLocked = 1,
        msoHTMLProjectStateProjectLocked = 2,
        msoHTMLProjectStateDocumentProjectUnlocked = 3
    } MsoHTMLProjectState;

    [
      odl,
      uuid(000C0358-0000-0000-C000-000000000046),
      helpcontext(0x00035f48),
      dual,
      nonextensible,
      oleautomation
    ]
    interface HTMLProjectItem : _IMsoDispObj {
        [id(00000000), propget, helpcontext(0x00035f49)]
        HRESULT Name([out, retval] BSTR* RetValue);
        [id(0x00000004), propget, helpcontext(0x00035f4a)]
        HRESULT IsOpen([out, retval] VARIANT_BOOL* RetValue);
        [id(0x00000005), helpcontext(0x00035f4b)]
        HRESULT LoadFromFile([in] BSTR FileName);
        [id(0x00000006), helpcontext(0x00035f4c)]
        HRESULT Open([in, optional, defaultvalue(0)] MsoHTMLProjectOpen OpenKind);
        [id(0x00000007), helpcontext(0x00035f4d)]
        HRESULT SaveCopyAs([in] BSTR FileName);
        [id(0x00000008), propget, helpcontext(0x00035f4e)]
        HRESULT Text([out, retval] BSTR* Text);
        [id(0x00000008), propput, helpcontext(0x00035f4e)]
        HRESULT Text([in] BSTR Text);
        [id(0x0000000a), propget, helpcontext(0x00035f50)]
        HRESULT Parent([out, retval] IDispatch** ppidisp);
    };

    [
      odl,
      uuid(000C0357-0000-0000-C000-000000000046),
      helpcontext(0x00036330),
      dual,
      nonextensible,
      oleautomation
    ]
    interface HTMLProjectItems : _IMsoDispObj {
        [id(00000000), helpcontext(0x00036331)]
        HRESULT Item(
                        [in] VARIANT* Index, 
                        [out, retval] HTMLProjectItem** RetValue);
        [id(0x00000001), propget, helpcontext(0x00036332)]
        HRESULT Count([out, retval] long* RetValue);
        [id(0xfffffffc), propget, restricted, helpcontext(0x00036333)]
        HRESULT _NewEnum([out, retval] IUnknown** RetValue);
        [id(0x00000002), propget, helpcontext(0x00036334)]
        HRESULT Parent([out, retval] IDispatch** ppidisp);
    };

    [
      odl,
      uuid(000C0356-0000-0000-C000-000000000046),
      helpcontext(0x00036718),
      dual,
      nonextensible,
      oleautomation
    ]
    interface HTMLProject : _IMsoDispObj {
        [id(00000000), propget, helpcontext(0x00036719)]
        HRESULT State([out, retval] MsoHTMLProjectState* State);
        [id(0x00000001), helpcontext(0x0003671a)]
        HRESULT RefreshProject([in, optional, defaultvalue(-1)] VARIANT_BOOL Refresh);
        [id(0x00000002), helpcontext(0x0003671b)]
        HRESULT RefreshDocument([in, optional, defaultvalue(-1)] VARIANT_BOOL Refresh);
        [id(0x00000003), propget, helpcontext(0x0003671c)]
        HRESULT HTMLProjectItems([out, retval] HTMLProjectItems** HTMLProjectItems);
        [id(0x00000004), propget, helpcontext(0x0003671d)]
        HRESULT Parent([out, retval] IDispatch** ppidisp);
        [id(0x00000005), helpcontext(0x0003671e)]
        HRESULT Open([in, optional, defaultvalue(0)] MsoHTMLProjectOpen OpenKind);
    };

    [
      odl,
      uuid(000C035A-0000-0000-C000-000000000046),
      hidden,
      dual,
      nonextensible,
      oleautomation
    ]
    interface MsoDebugOptions : _IMsoDispObj {
        [id(0x00000004), propget, hidden]
        HRESULT FeatureReports([out, retval] int* puintFeatureReports);
        [id(0x00000004), propput, hidden]
        HRESULT FeatureReports([in] int puintFeatureReports);
        [id(0x00000005), propget]
        HRESULT OutputToDebugger([out, retval] VARIANT_BOOL* pvarfOutputToDebugger);
        [id(0x00000005), propput]
        HRESULT OutputToDebugger([in] VARIANT_BOOL pvarfOutputToDebugger);
        [id(0x00000006), propget]
        HRESULT OutputToFile([out, retval] VARIANT_BOOL* pvarfOutputToFile);
        [id(0x00000006), propput]
        HRESULT OutputToFile([in] VARIANT_BOOL pvarfOutputToFile);
        [id(0x00000007), propget]
        HRESULT OutputToMessageBox([out, retval] VARIANT_BOOL* pvarfOutputToMessageBox);
        [id(0x00000007), propput]
        HRESULT OutputToMessageBox([in] VARIANT_BOOL pvarfOutputToMessageBox);
    };

    typedef enum {
        msoFileDialogOpen = 1,
        msoFileDialogSaveAs = 2,
        msoFileDialogFilePicker = 3,
        msoFileDialogFolderPicker = 4
    } MsoFileDialogType;

    typedef enum {
        msoFileDialogViewList = 1,
        msoFileDialogViewDetails = 2,
        msoFileDialogViewProperties = 3,
        msoFileDialogViewPreview = 4,
        msoFileDialogViewThumbnail = 5,
        msoFileDialogViewLargeIcons = 6,
        msoFileDialogViewSmallIcons = 7,
        msoFileDialogViewWebView = 8,
        msoFileDialogViewTiles = 9
    } MsoFileDialogView;

    [
      odl,
      uuid(000C0363-0000-0000-C000-000000000046),
      helpcontext(0x0003dc48),
      dual,
      nonextensible,
      oleautomation
    ]
    interface FileDialogSelectedItems : _IMsoDispObj {
        [id(0x60030000), propget, helpcontext(0x0003dc49)]
        HRESULT Parent([out, retval] IDispatch** Parent);
        [id(0xfffffffc), propget]
        HRESULT _NewEnum([out, retval] IUnknown** ppienum);
        [id(0x60030002), propget, helpcontext(0x0003dc4a)]
        HRESULT Count([out, retval] long* pcFiles);
        [id(00000000), helpcontext(0x0003dc4b)]
        HRESULT Item(
                        [in] int Index, 
                        [out, retval] BSTR* Item);
    };

    [
      odl,
      uuid(000C0364-0000-0000-C000-000000000046),
      helpcontext(0x0003e030),
      dual,
      nonextensible,
      oleautomation
    ]
    interface FileDialogFilter : _IMsoDispObj {
        [id(0x60030000), propget, helpcontext(0x0003e031)]
        HRESULT Parent([out, retval] IDispatch** Parent);
        [id(0x60030001), propget, helpcontext(0x0003e032)]
        HRESULT Extensions([out, retval] BSTR* Extensions);
        [id(0x60030002), propget, helpcontext(0x0003e033)]
        HRESULT Description([out, retval] BSTR* Description);
    };

    [
      odl,
      uuid(000C0365-0000-0000-C000-000000000046),
      helpcontext(0x0003e418),
      dual,
      nonextensible,
      oleautomation
    ]
    interface FileDialogFilters : _IMsoDispObj {
        [id(0x60030000), propget, helpcontext(0x0003e419)]
        HRESULT Parent([out, retval] IDispatch** Parent);
        [id(0xfffffffc), propget]
        HRESULT _NewEnum([out, retval] IUnknown** ppienum);
        [id(0x60030002), propget, helpcontext(0x0003e41a)]
        HRESULT Count([out, retval] long* pcFilters);
        [id(00000000), helpcontext(0x0003e41b)]
        HRESULT Item(
                        [in] int Index, 
                        [out, retval] FileDialogFilter** Item);
        [id(0x60030004), helpcontext(0x0003e41c)]
        HRESULT Delete([in, optional] VARIANT filter);
        [id(0x60030005), helpcontext(0x0003e41d)]
        HRESULT Clear();
        [id(0x60030006), helpcontext(0x0003e41e)]
        HRESULT Add(
                        [in] BSTR Description, 
                        [in] BSTR Extensions, 
                        [in, optional] VARIANT Position, 
                        [out, retval] FileDialogFilter** Add);
    };

    [
      odl,
      uuid(000C0362-0000-0000-C000-000000000046),
      helpcontext(0x0003e800),
      dual,
      nonextensible,
      oleautomation
    ]
    interface FileDialog : _IMsoDispObj {
        [id(0x60030000), propget, helpcontext(0x0003e801)]
        HRESULT Parent([out, retval] IDispatch** Parent);
        [id(0x60030001), propget, helpcontext(0x0003e802)]
        HRESULT Filters([out, retval] FileDialogFilters** Filters);
        [id(0x60030002), propget, helpcontext(0x0003e803)]
        HRESULT FilterIndex([out, retval] int* FilterIndex);
        [id(0x60030002), propput, helpcontext(0x0003e803)]
        HRESULT FilterIndex([in] int FilterIndex);
        [id(0x60030004), propget, helpcontext(0x0003e804)]
        HRESULT Title([out, retval] BSTR* Title);
        [id(0x60030004), propput, helpcontext(0x0003e804)]
        HRESULT Title([in] BSTR Title);
        [id(0x60030006), propget, helpcontext(0x0003e805)]
        HRESULT ButtonName([out, retval] BSTR* ButtonName);
        [id(0x60030006), propput, helpcontext(0x0003e805)]
        HRESULT ButtonName([in] BSTR ButtonName);
        [id(0x60030008), propget, helpcontext(0x0003e806)]
        HRESULT AllowMultiSelect([out, retval] VARIANT_BOOL* pvarfAllowMultiSelect);
        [id(0x60030008), propput, helpcontext(0x0003e806)]
        HRESULT AllowMultiSelect([in] VARIANT_BOOL pvarfAllowMultiSelect);
        [id(0x6003000a), propget, helpcontext(0x0003e807)]
        HRESULT InitialView([out, retval] MsoFileDialogView* pinitialview);
        [id(0x6003000a), propput, helpcontext(0x0003e807)]
        HRESULT InitialView([in] MsoFileDialogView pinitialview);
        [id(0x6003000c), propget, helpcontext(0x0003e808)]
        HRESULT InitialFileName([out, retval] BSTR* InitialFileName);
        [id(0x6003000c), propput, helpcontext(0x0003e808)]
        HRESULT InitialFileName([in] BSTR InitialFileName);
        [id(0x6003000e), propget, helpcontext(0x0003e809)]
        HRESULT SelectedItems([out, retval] FileDialogSelectedItems** Files);
        [id(0x6003000f), propget, helpcontext(0x0003e80a)]
        HRESULT DialogType([out, retval] MsoFileDialogType* pdialogtype);
        [id(00000000), propget, helpcontext(0x0003e80b)]
        HRESULT Item([out, retval] BSTR* Name);
        [id(0x60030011), helpcontext(0x0003e80c)]
        HRESULT Show([out, retval] int* rval);
        [id(0x60030012), helpcontext(0x0003e80d)]
        HRESULT Execute();
    };

    typedef enum {
        msoAutomationSecurityLow = 1,
        msoAutomationSecurityByUI = 2,
        msoAutomationSecurityForceDisable = 3
    } MsoAutomationSecurity;

    [
      odl,
      uuid(000C0410-0000-0000-C000-000000000046),
      helpcontext(0x0003c4d8),
      dual,
      nonextensible,
      oleautomation
    ]
    interface SignatureSet : _IMsoDispObj {
        [id(0xfffffffc), propget]
        HRESULT _NewEnum([out, retval] IUnknown** ppienum);
        [id(0x60030001), propget, helpcontext(0x0003c4d9)]
        HRESULT Count([out, retval] int* pcSig);
        [id(00000000), propget, helpcontext(0x0003c4da)]
        HRESULT Item(
                        [in] int iSig, 
                        [out, retval] Signature** ppidisp);
        [id(0x60030003), helpcontext(0x0003c4db)]
        HRESULT Add([out, retval] Signature** ppidisp);
        [id(0x60030004), helpcontext(0x0003c4dc)]
        HRESULT Commit();
        [id(0x60030005), propget, helpcontext(0x0003c4dd)]
        HRESULT Parent([out, retval] IDispatch** ppidisp);
    };

    [
      odl,
      uuid(000C0411-0000-0000-C000-000000000046),
      helpcontext(0x0003c8c0),
      dual,
      nonextensible,
      oleautomation
    ]
    interface Signature : _IMsoDispObj {
        [id(0x60030000), propget, helpcontext(0x0003c8c1)]
        HRESULT Signer([out, retval] BSTR* pbstr);
        [id(0x60030001), propget, helpcontext(0x0003c8c2)]
        HRESULT Issuer([out, retval] BSTR* pbstr);
        [id(0x60030002), propget, helpcontext(0x0003c8c3)]
        HRESULT ExpireDate([out, retval] VARIANT* pvarDate);
        [id(0x60030003), propget, helpcontext(0x0003c8c4)]
        HRESULT IsValid([out, retval] VARIANT_BOOL* pfValid);
        [id(0x60030004), propget, helpcontext(0x0003c8c5)]
        HRESULT AttachCertificate([out, retval] VARIANT_BOOL* pfAttach);
        [id(0x60030004), propput, helpcontext(0x0003c8c5)]
        HRESULT AttachCertificate([in] VARIANT_BOOL pfAttach);
        [id(0x60030006), helpcontext(0x0003c8c6)]
        HRESULT Delete();
        [id(0x60030007), propget, helpcontext(0x0003c8c7)]
        HRESULT Parent([out, retval] IDispatch** ppidisp);
        [id(0x60030008), propget, helpcontext(0x0003c8c8)]
        HRESULT IsCertificateExpired([out, retval] VARIANT_BOOL* pfExpired);
        [id(0x60030009), propget, helpcontext(0x0003c8c9)]
        HRESULT IsCertificateRevoked([out, retval] VARIANT_BOOL* pfExpired);
        [id(0x6003000a), propget, helpcontext(0x0003c8ca)]
        HRESULT SignDate([out, retval] VARIANT* pvarDate);
    };

    typedef enum {
        mfPlainText = 1,
        mfHTML = 2,
        mfRTF = 3
    } MailFormat;

    [
      odl,
      uuid(000672AC-0000-0000-C000-000000000046),
      helpcontext(0x00002af8),
      hidden,
      dual,
      nonextensible,
      oleautomation
    ]
    interface IMsoEnvelopeVB : IDispatch {
        [id(0x00000001), propget, helpcontext(0x00002af9)]
        HRESULT Introduction([out, retval] BSTR* pbstrIntro);
        [id(0x00000001), propput, helpcontext(0x00002af9)]
        HRESULT Introduction([in] BSTR pbstrIntro);
        [id(0x00000002), propget, helpcontext(0x00002afb)]
        HRESULT Item([out, retval] IDispatch** ppdisp);
        [id(0x00000003), propget, helpcontext(0x00002afc)]
        HRESULT Parent([out, retval] IDispatch** ppdisp);
        [id(0x00000004), propget, helpcontext(0x00002afd)]
        HRESULT CommandBars([out, retval] IDispatch** ppdisp);
    };

    [
      uuid(000672AD-0000-0000-C000-000000000046),
      helpcontext(0x0003c0f0)
    ]
    dispinterface IMsoEnvelopeVBEvents {
        properties:
        methods:
            [id(0x00000001), helpcontext(0x0003c0f1)]
            void EnvelopeShow();
            [id(0x00000002), helpcontext(0x0003c0f2)]
            void EnvelopeHide();
    };

    [
      uuid(0006F01A-0000-0000-C000-000000000046),
      helpcontext(0x0003bd08),
      noncreatable
    ]
    coclass MsoEnvelope {
        [default] interface IMsoEnvelopeVB;
        [default, source] dispinterface IMsoEnvelopeVBEvents;
    };


    [
      odl,
      uuid(000C036C-0000-0000-C000-000000000046),
      helpcontext(0x0003ebe8),
      dual,
      oleautomation
    ]
    interface FileTypes : _IMsoDispObj {
        [id(00000000), propget, helpcontext(0x0003ebe9)]
        HRESULT Item(
                        [in] int Index, 
                        [out, retval] MsoFileType* MsoFileTypeRet);
        [id(0x00000002), propget, helpcontext(0x0003ebea)]
        HRESULT Count([out, retval] int* iCountRetVal);
        [id(0x00000003), helpcontext(0x0003ebeb)]
        HRESULT Add([in] MsoFileType FileType);
        [id(0x00000004), helpcontext(0x0003ebec)]
        HRESULT Remove([in] int Index);
        [id(0xfffffffc), propget]
        HRESULT _NewEnum([out, retval] IUnknown** ppunkEnum);
    };

    [
      odl,
      uuid(000C036A-0000-0000-C000-000000000046),
      helpcontext(0x0003efd0),
      dual,
      oleautomation
    ]
    interface SearchFolders : _IMsoDispObj {
        [id(00000000), propget, helpcontext(0x0003efd1)]
        HRESULT Item(
                        [in] int Index, 
                        [out, retval] ScopeFolder** ScopeFolderRet);
        [id(0x00000002), propget, helpcontext(0x0003efd2)]
        HRESULT Count([out, retval] int* iCountRetVal);
        [id(0x00000003), helpcontext(0x0003efd3)]
        HRESULT Add([in] ScopeFolder* ScopeFolder);
        [id(0x00000004), helpcontext(0x0003efd4)]
        HRESULT Remove([in] int Index);
        [id(0xfffffffc), propget]
        HRESULT _NewEnum([out, retval] IUnknown** ppunkEnum);
    };

    [
      odl,
      uuid(000C0369-0000-0000-C000-000000000046),
      helpcontext(0x0003cca8),
      dual,
      oleautomation
    ]
    interface ScopeFolders : _IMsoDispObj {
        [id(00000000), propget, helpcontext(0x0003cca9)]
        HRESULT Item(
                        [in] int Index, 
                        [out, retval] ScopeFolder** ScopeFolderRet);
        [id(0x00000004), propget, helpcontext(0x0003ccaa)]
        HRESULT Count([out, retval] int* iCountRetVal);
        [id(0xfffffffc), propget]
        HRESULT _NewEnum([out, retval] IUnknown** ppunkEnum);
    };

    [
      odl,
      uuid(000C0368-0000-0000-C000-000000000046),
      helpcontext(0x0003f3b8),
      dual,
      oleautomation
    ]
    interface ScopeFolder : _IMsoDispObj {
        [id(00000000), propget, helpcontext(0x0003f3b9)]
        HRESULT Name([out, retval] BSTR* pbstrName);
        [id(0x00000002), propget, helpcontext(0x0003f3ba)]
        HRESULT Path([out, retval] BSTR* pbstrPath);
        [id(0x00000003), propget, helpcontext(0x0003f3bb)]
        HRESULT ScopeFolders([out, retval] ScopeFolders** ScopeFoldersRet);
        [id(0x00000004), helpcontext(0x0003f3bc)]
        HRESULT AddToSearchFolders();
    };

    [
      odl,
      uuid(000C0367-0000-0000-C000-000000000046),
      helpcontext(0x0003d478),
      dual,
      oleautomation
    ]
    interface SearchScope : _IMsoDispObj {
        [id(00000000), propget, helpcontext(0x0003d479)]
        HRESULT Type([out, retval] MsoSearchIn* MsoSearchInRetVal);
        [id(0x00000001), propget, helpcontext(0x0003d47a)]
        HRESULT ScopeFolder([out, retval] ScopeFolder** ScopeFolderRet);
    };

    [
      odl,
      uuid(000C0366-0000-0000-C000-000000000046),
      helpcontext(0x0003d860),
      dual,
      oleautomation
    ]
    interface SearchScopes : _IMsoDispObj {
        [id(00000000), propget, helpcontext(0x0003d861)]
        HRESULT Item(
                        [in] int Index, 
                        [out, retval] SearchScope** SearchScopeRet);
        [id(0x00000004), propget, helpcontext(0x0003d862)]
        HRESULT Count([out, retval] int* iCountRetVal);
        [id(0xfffffffc), propget]
        HRESULT _NewEnum([out, retval] IUnknown** ppunkEnum);
    };

    [
      odl,
      uuid(000C036D-0000-0000-C000-000000000046),
      hidden,
      dual,
      nonextensible,
      oleautomation
    ]
    interface IMsoDiagram : _IMsoDispObj {
        [id(0x00000064), propget]
        HRESULT Parent([out, retval] IDispatch** Parent);
        [id(0x00000065), propget]
        HRESULT Nodes([out, retval] DiagramNodes** Nodes);
        [id(0x00000066), propget]
        HRESULT Type([out, retval] MsoDiagramType* Type);
        [id(0x00000067), propget]
        HRESULT AutoLayout([out, retval] MsoTriState* AutoLayout);
        [id(0x00000067), propput]
        HRESULT AutoLayout([in] MsoTriState AutoLayout);
        [id(0x00000068), propget]
        HRESULT Reverse([out, retval] MsoTriState* Reverse);
        [id(0x00000068), propput]
        HRESULT Reverse([in] MsoTriState Reverse);
        [id(0x00000069), propget]
        HRESULT AutoFormat([out, retval] MsoTriState* AutoFormat);
        [id(0x00000069), propput]
        HRESULT AutoFormat([in] MsoTriState AutoFormat);
        [id(0x0000000a)]
        HRESULT Convert([in] MsoDiagramType Type);
        [id(0x0000000b)]
        HRESULT FitText();
    };

    [
      odl,
      uuid(000C036E-0000-0000-C000-000000000046),
      hidden,
      dual,
      nonextensible,
      oleautomation
    ]
    interface DiagramNodes : _IMsoDispObj {
        [id(0xfffffffc), propget]
        HRESULT _NewEnum([out, retval] IUnknown** ppunkEnum);
        [id(00000000)]
        HRESULT Item(
                        [in] VARIANT Index, 
                        [out, retval] DiagramNode** ppdn);
        [id(0x0000000a)]
        HRESULT SelectAll();
        [id(0x00000064), propget]
        HRESULT Parent([out, retval] IDispatch** Parent);
        [id(0x00000065), propget]
        HRESULT Count([out, retval] int* iDiagramNodes);
    };

    [
      odl,
      uuid(000C036F-0000-0000-C000-000000000046),
      hidden,
      dual,
      nonextensible,
      oleautomation
    ]
    interface DiagramNodeChildren : _IMsoDispObj {
        [id(0xfffffffc), propget]
        HRESULT _NewEnum([out, retval] IUnknown** ppunkEnum);
        [id(00000000)]
        HRESULT Item(
                        [in] VARIANT Index, 
                        [out, retval] DiagramNode** Node);
        [id(0x0000000a)]
        HRESULT AddNode(
                        [in, optional, defaultvalue(-1)] VARIANT Index, 
                        [in, optional, defaultvalue(1)] MsoDiagramNodeType NodeType, 
                        [out, retval] DiagramNode** NewNode);
        [id(0x0000000b)]
        HRESULT SelectAll();
        [id(0x00000064), propget]
        HRESULT Parent([out, retval] IDispatch** Parent);
        [id(0x00000065), propget]
        HRESULT Count([out, retval] int* iDiagramNodes);
        [id(0x00000067), propget]
        HRESULT FirstChild([out, retval] DiagramNode** First);
        [id(0x00000068), propget]
        HRESULT LastChild([out, retval] DiagramNode** Last);
    };

    [
      odl,
      uuid(000C0370-0000-0000-C000-000000000046),
      hidden,
      dual,
      nonextensible,
      oleautomation
    ]
    interface DiagramNode : _IMsoDispObj {
        [id(0x0000000a)]
        HRESULT AddNode(
                        [in, optional, defaultvalue(2)] MsoRelativeNodePosition Pos, 
                        [in, optional, defaultvalue(1)] MsoDiagramNodeType NodeType, 
                        [out, retval] DiagramNode** NewNode);
        [id(0x0000000b)]
        HRESULT Delete();
        [id(0x0000000c)]
        HRESULT MoveNode(
                        [in] DiagramNode* TargetNode, 
                        [in] MsoRelativeNodePosition Pos);
        [id(0x0000000d)]
        HRESULT ReplaceNode([in] DiagramNode* TargetNode);
        [id(0x0000000e)]
        HRESULT SwapNode(
                        [in] DiagramNode* TargetNode, 
                        [in, optional, defaultvalue(-1)] VARIANT_BOOL SwapChildren);
        [id(0x0000000f)]
        HRESULT CloneNode(
                        [in] VARIANT_BOOL CopyChildren, 
                        [in] DiagramNode* TargetNode, 
                        [in, optional, defaultvalue(2)] MsoRelativeNodePosition Pos, 
                        [out, retval] DiagramNode** Node);
        [id(0x00000010)]
        HRESULT TransferChildren([in] DiagramNode* ReceivingNode);
        [id(0x00000011)]
        HRESULT NextNode([out, retval] DiagramNode** NextNode);
        [id(0x00000012)]
        HRESULT PrevNode([out, retval] DiagramNode** PrevNode);
        [id(0x00000064), propget]
        HRESULT Parent([out, retval] IDispatch** Parent);
        [id(0x00000065), propget]
        HRESULT Children([out, retval] DiagramNodeChildren** Children);
        [id(0x00000066), propget]
        HRESULT Shape([out, retval] Shape** Shape);
        [id(0x00000067), propget]
        HRESULT Root([out, retval] DiagramNode** Root);
        [id(0x00000068), propget]
        HRESULT Diagram([out, retval] IMsoDiagram** Diagram);
        [id(0x00000069), propget]
        HRESULT Layout([out, retval] MsoOrgChartLayoutType* Type);
        [id(0x00000069), propput]
        HRESULT Layout([in] MsoOrgChartLayoutType Type);
        [id(0x0000006a), propget]
        HRESULT TextShape([out, retval] Shape** Shape);
    };

    [
      odl,
      uuid(000C0371-0000-0000-C000-000000000046),
      hidden,
      dual,
      nonextensible,
      oleautomation
    ]
    interface CanvasShapes : _IMsoDispObj {
        [id(0x00000001), propget]
        HRESULT Parent([out, retval] IDispatch** Parent);
        [id(0x00000002), propget]
        HRESULT Count([out, retval] int* Count);
        [id(00000000)]
        HRESULT Item(
                        [in] VARIANT Index, 
                        [out, retval] Shape** Item);
        [id(0xfffffffc), propget]
        HRESULT _NewEnum([out, retval] IUnknown** _NewEnum);
        [id(0x0000000a)]
        HRESULT AddCallout(
                        [in] MsoCalloutType Type, 
                        [in] single Left, 
                        [in] single Top, 
                        [in] single Width, 
                        [in] single Height, 
                        [out, retval] Shape** Callout);
        [id(0x0000000b)]
        HRESULT AddConnector(
                        [in] MsoConnectorType Type, 
                        [in] single BeginX, 
                        [in] single BeginY, 
                        [in] single EndX, 
                        [in] single EndY, 
                        [out, retval] Shape** Connector);
        [id(0x0000000c)]
        HRESULT AddCurve(
                        [in] VARIANT SafeArrayOfPoints, 
                        [out, retval] Shape** Curve);
        [id(0x0000000d)]
        HRESULT AddLabel(
                        [in] MsoTextOrientation Orientation, 
                        [in] single Left, 
                        [in] single Top, 
                        [in] single Width, 
                        [in] single Height, 
                        [out, retval] Shape** Label);
        [id(0x0000000e)]
        HRESULT AddLine(
                        [in] single BeginX, 
                        [in] single BeginY, 
                        [in] single EndX, 
                        [in] single EndY, 
                        [out, retval] Shape** Line);
        [id(0x0000000f)]
        HRESULT AddPicture(
                        [in] BSTR FileName, 
                        [in] MsoTriState LinkToFile, 
                        [in] MsoTriState SaveWithDocument, 
                        [in] single Left, 
                        [in] single Top, 
                        [in, optional, defaultvalue(-1)] single Width, 
                        [in, optional, defaultvalue(-1)] single Height, 
                        [out, retval] Shape** Picture);
        [id(0x00000010)]
        HRESULT AddPolyline(
                        [in] VARIANT SafeArrayOfPoints, 
                        [out, retval] Shape** Polyline);
        [id(0x00000011)]
        HRESULT AddShape(
                        [in] MsoAutoShapeType Type, 
                        [in] single Left, 
                        [in] single Top, 
                        [in] single Width, 
                        [in] single Height, 
                        [out, retval] Shape** Shape);
        [id(0x00000012)]
        HRESULT AddTextEffect(
                        [in] MsoPresetTextEffect PresetTextEffect, 
                        [in] BSTR Text, 
                        [in] BSTR FontName, 
                        [in] single FontSize, 
                        [in] MsoTriState FontBold, 
                        [in] MsoTriState FontItalic, 
                        [in] single Left, 
                        [in] single Top, 
                        [out, retval] Shape** TextEffect);
        [id(0x00000013)]
        HRESULT AddTextbox(
                        [in] MsoTextOrientation Orientation, 
                        [in] single Left, 
                        [in] single Top, 
                        [in] single Width, 
                        [in] single Height, 
                        [out, retval] Shape** Textbox);
        [id(0x00000014)]
        HRESULT BuildFreeform(
                        [in] MsoEditingType EditingType, 
                        [in] single X1, 
                        [in] single Y1, 
                        [out, retval] FreeformBuilder** FreeformBuilder);
        [id(0x00000015)]
        HRESULT Range(
                        [in] VARIANT Index, 
                        [out, retval] ShapeRange** Range);
        [id(0x00000016)]
        HRESULT SelectAll();
        [id(0x00000064), propget]
        HRESULT Background([out, retval] Shape** Background);
    };

    typedef enum {
        msoMoveRowFirst = 0xfffffffc,
        msoMoveRowPrev = 0xfffffffd,
        msoMoveRowNext = 0xfffffffe,
        msoMoveRowNbr = 0xffffffff
    } MsoMoveRow;

    [
      odl,
      uuid(000C1530-0000-0000-C000-000000000046),
      helpcontext(0x00038a40),
      dual,
      nonextensible,
      oleautomation
    ]
    interface OfficeDataSourceObject : IDispatch {
        [id(0x00000001), propget, helpcontext(0x00038a41)]
        HRESULT ConnectString([out, retval] BSTR* pbstrConnect);
        [id(0x00000001), propput, helpcontext(0x00038a41)]
        HRESULT ConnectString([in] BSTR pbstrConnect);
        [id(0x00000002), propget, helpcontext(0x00038a42)]
        HRESULT Table([out, retval] BSTR* pbstrTable);
        [id(0x00000002), propput, helpcontext(0x00038a42)]
        HRESULT Table([in] BSTR pbstrTable);
        [id(0x00000003), propget, helpcontext(0x00038a43)]
        HRESULT DataSource([out, retval] BSTR* pbstrSrc);
        [id(0x00000003), propput, helpcontext(0x00038a43)]
        HRESULT DataSource([in] BSTR pbstrSrc);
        [id(0x00000004), propget, helpcontext(0x00038a44)]
        HRESULT Columns([out, retval] IDispatch** ppColumns);
        [id(0x00000005), propget, helpcontext(0x00038a45)]
        HRESULT RowCount([out, retval] long* pcRows);
        [id(0x00000006), propget, helpcontext(0x00038a4a)]
        HRESULT Filters([out, retval] IDispatch** ppFilters);
        [id(0x60020009), helpcontext(0x00038a46)]
        HRESULT Move(
                        [in] MsoMoveRow MsoMoveRow, 
                        [in, optional, defaultvalue(1)] int RowNbr, 
                        [out, retval] int* rval);
        [id(0x6002000a), helpcontext(0x00038a47)]
        HRESULT Open(
                        [in, optional, defaultvalue("")] BSTR bstrSrc, 
                        [in, optional, defaultvalue("")] BSTR bstrConnect, 
                        [in, optional, defaultvalue("")] BSTR bstrTable, 
                        [in, optional, defaultvalue(0)] long fOpenExclusive, 
                        [in, optional, defaultvalue(1)] long fNeverPrompt);
        [id(0x6002000b), helpcontext(0x00038a48)]
        HRESULT SetSortOrder(
                        [in] BSTR SortField1, 
                        [in, optional, defaultvalue(-1)] VARIANT_BOOL SortAscending1, 
                        [in, optional, defaultvalue("")] BSTR SortField2, 
                        [in, optional, defaultvalue(-1)] VARIANT_BOOL SortAscending2, 
                        [in, optional, defaultvalue("")] BSTR SortField3, 
                        [in, optional, defaultvalue(-1)] VARIANT_BOOL SortAscending3);
        [id(0x6002000c), helpcontext(0x00038a49)]
        HRESULT ApplyFilter();
    };

    [
      odl,
      uuid(000C1531-0000-0000-C000-000000000046),
      helpcontext(0x00038e28),
      dual,
      nonextensible,
      oleautomation
    ]
    interface ODSOColumn : _IMsoDispObj {
        [id(0x00000001), propget, helpcontext(0x00038e29)]
        HRESULT Index([out, retval] long* plIndex);
        [id(0x00000002), propget, helpcontext(0x00038e2a)]
        HRESULT Name([out, retval] BSTR* pbstrName);
        [id(0x00000003), propget, helpcontext(0x00038e2b)]
        HRESULT Parent([out, retval] IDispatch** ppParent);
        [id(0x00000004), propget, helpcontext(0x00038e2c)]
        HRESULT Value([out, retval] BSTR* pbstrValue);
    };

    [
      odl,
      uuid(000C1532-0000-0000-C000-000000000046),
      helpcontext(0x00039210),
      dual,
      nonextensible,
      oleautomation
    ]
    interface ODSOColumns : _IMsoDispObj {
        [id(0x00000001), propget, helpcontext(0x00039211)]
        HRESULT Count([out, retval] long* plCount);
        [id(0x00000002), propget, helpcontext(0x00039212)]
        HRESULT Parent([out, retval] IDispatch** ppParentOdso);
        [id(0x60030002), helpcontext(0x00039213)]
        HRESULT Item(
                        [in] VARIANT varIndex, 
                        [out, retval] IDispatch** ppColumn);
    };

    typedef enum {
        msoFilterComparisonEqual = 0,
        msoFilterComparisonNotEqual = 1,
        msoFilterComparisonLessThan = 2,
        msoFilterComparisonGreaterThan = 3,
        msoFilterComparisonLessThanEqual = 4,
        msoFilterComparisonGreaterThanEqual = 5,
        msoFilterComparisonIsBlank = 6,
        msoFilterComparisonIsNotBlank = 7,
        msoFilterComparisonContains = 8,
        msoFilterComparisonNotContains = 9
    } MsoFilterComparison;

    typedef enum {
        msoFilterConjunctionAnd = 0,
        msoFilterConjunctionOr = 1
    } MsoFilterConjunction;

    [
      odl,
      uuid(000C1533-0000-0000-C000-000000000046),
      helpcontext(0x0003a980),
      dual,
      nonextensible,
      oleautomation
    ]
    interface ODSOFilter : _IMsoDispObj {
        [id(0x00000001), propget, helpcontext(0x0003a981)]
        HRESULT Index([out, retval] long* plIndex);
        [id(0x00000002), propget, helpcontext(0x0003a982)]
        HRESULT Parent([out, retval] IDispatch** ppParent);
        [id(0x00000003), propget, helpcontext(0x0003a983)]
        HRESULT Column([out, retval] BSTR* pbstrCol);
        [id(0x00000003), propput, helpcontext(0x0003a983)]
        HRESULT Column([in] BSTR pbstrCol);
        [id(0x00000004), propget, helpcontext(0x0003a984)]
        HRESULT Comparison([out, retval] MsoFilterComparison* pComparison);
        [id(0x00000004), propput, helpcontext(0x0003a984)]
        HRESULT Comparison([in] MsoFilterComparison pComparison);
        [id(0x00000005), propget, helpcontext(0x0003a985)]
        HRESULT CompareTo([out, retval] BSTR* pbstrCompareTo);
        [id(0x00000005), propput, helpcontext(0x0003a985)]
        HRESULT CompareTo([in] BSTR pbstrCompareTo);
        [id(0x00000006), propget, helpcontext(0x0003a986)]
        HRESULT Conjunction([out, retval] MsoFilterConjunction* pConjunction);
        [id(0x00000006), propput, helpcontext(0x0003a986)]
        HRESULT Conjunction([in] MsoFilterConjunction pConjunction);
    };

    [
      odl,
      uuid(000C1534-0000-0000-C000-000000000046),
      helpcontext(0x0003ad68),
      dual,
      nonextensible,
      oleautomation
    ]
    interface ODSOFilters : _IMsoDispObj {
        [id(0x00000001), propget, helpcontext(0x0003ad69)]
        HRESULT Count([out, retval] long* plCount);
        [id(0x00000002), propget, helpcontext(0x0003ad6a)]
        HRESULT Parent([out, retval] IDispatch** ppParentOdso);
        [id(0x60030002), helpcontext(0x0003ad6b)]
        HRESULT Item(
                        [in] long Index, 
                        [out, retval] IDispatch** ppColumn);
        [id(0x60030003), helpcontext(0x0003ad6c)]
        HRESULT Add(
                        [in] BSTR Column, 
                        [in] MsoFilterComparison Comparison, 
                        [in] MsoFilterConjunction Conjunction, 
                        [in, optional, defaultvalue("")] BSTR bstrCompareTo, 
                        [in, optional, defaultvalue(0)] VARIANT_BOOL DeferUpdate);
        [id(0x60030004), helpcontext(0x0003ad6d)]
        HRESULT Delete(
                        [in] long Index, 
                        [in, optional, defaultvalue(0)] VARIANT_BOOL DeferUpdate);
    };

    typedef enum {
        msoOpenDocument = 0,
        msoNew = 1,
        msoNewfromExistingFile = 2,
        msoNewfromTemplate = 3,
        msoBottomSection = 4
    } MsoFileNewSection;

    typedef enum {
        msoEditFile = 0,
        msoCreateNewFile = 1,
        msoOpenFile = 2
    } MsoFileNewAction;

    [
      odl,
      uuid(000C0936-0000-0000-C000-000000000046),
      helpcontext(0x000395f8),
      dual,
      nonextensible,
      oleautomation
    ]
    interface NewFile : _IMsoDispObj {
        [id(0x00000001), helpcontext(0x000395f9)]
        HRESULT Add(
                        [in] BSTR FileName, 
                        [in, optional] VARIANT Section, 
                        [in, optional] VARIANT DisplayName, 
                        [in, optional] VARIANT Action, 
                        [out, retval] VARIANT_BOOL* pvarf);
        [id(0x00000002), helpcontext(0x000395fa)]
        HRESULT Remove(
                        [in] BSTR FileName, 
                        [in, optional] VARIANT Section, 
                        [in, optional] VARIANT DisplayName, 
                        [in, optional] VARIANT Action, 
                        [out, retval] VARIANT_BOOL* pvarf);
    };

    [
      odl,
      uuid(000CD100-0000-0000-C000-000000000046),
      helpcontext(0x000399e0),
      hidden,
      dual,
      nonextensible,
      oleautomation
    ]
    interface WebComponent : IDispatch {
        [id(0x00000001), propget, helpcontext(0x000399e1)]
        HRESULT Shape([out, retval] IDispatch** RetValue);
        [id(0x00000002), propget, helpcontext(0x000399e2)]
        HRESULT URL([out, retval] BSTR* RetValue);
        [id(0x00000002), propput, helpcontext(0x000399e2)]
        HRESULT URL([in] BSTR RetValue);
        [id(0x00000003), propget, helpcontext(0x000399e4)]
        HRESULT HTML([out, retval] BSTR* RetValue);
        [id(0x00000003), propput, helpcontext(0x000399e4)]
        HRESULT HTML([in] BSTR RetValue);
        [id(0x00000004), propget, helpcontext(0x000399e6)]
        HRESULT Name([out, retval] BSTR* RetValue);
        [id(0x00000004), propput, helpcontext(0x000399e6)]
        HRESULT Name([in] BSTR RetValue);
        [id(0x00000005), propget, helpcontext(0x000399e8)]
        HRESULT Width([out, retval] long* RetValue);
        [id(0x00000005), propput, helpcontext(0x000399e8)]
        HRESULT Width([in] long RetValue);
        [id(0x00000006), propget, helpcontext(0x000399ea)]
        HRESULT Height([out, retval] long* RetValue);
        [id(0x00000006), propput, helpcontext(0x000399ea)]
        HRESULT Height([in] long RetValue);
        [id(0x00000007), helpcontext(0x000399ec)]
        HRESULT SetPlaceHolderGraphic([in] BSTR PlaceHolderGraphic);
        [id(0x00000008), helpcontext(0x000399ee)]
        HRESULT Commit();
        [id(0x00000009), helpcontext(0x000399ef)]
        HRESULT Revert();
    };

    [
      odl,
      uuid(000CD101-0000-0000-C000-000000000046),
      helpcontext(0x00039dc8),
      hidden,
      dual,
      nonextensible,
      oleautomation
    ]
    interface WebComponentWindowExternal : IDispatch {
        [id(0x00000001), propget, helpcontext(0x00039dc9)]
        HRESULT InterfaceVersion([out, retval] long* RetValue);
        [id(0x00000002), propget, helpcontext(0x00039dca)]
        HRESULT ApplicationName([out, retval] BSTR* RetValue);
        [id(0x00000003), propget, helpcontext(0x00039dcb)]
        HRESULT ApplicationVersion([out, retval] long* RetValue);
        [id(0x00000004), propget, helpcontext(0x00039dcc)]
        HRESULT Application([out, retval] IDispatch** RetValue);
        [id(0x00000005), helpcontext(0x00039dcd)]
        HRESULT CloseWindow();
        [id(0x00000006), propget, helpcontext(0x00039dce)]
        HRESULT WebComponent([out, retval] WebComponent** RetValue);
    };

    [
      odl,
      uuid(000CD102-0000-0000-C000-000000000046),
      helpcontext(0x00039dc8),
      hidden,
      dual,
      nonextensible,
      oleautomation
    ]
    interface WebComponentFormat : IDispatch {
        [id(0x00000001), propget, helpcontext(0x00039dc9)]
        HRESULT Application([out, retval] IDispatch** RetValue);
        [id(0x00000002), propget, helpcontext(0x00039dca)]
        HRESULT Parent([out, retval] IDispatch** Parent);
        [id(0x00000003), propget, helpcontext(0x00039dcb)]
        HRESULT URL([out, retval] BSTR* RetValue);
        [id(0x00000003), propput, helpcontext(0x00039dcb)]
        HRESULT URL([in] BSTR RetValue);
        [id(0x00000004), propget, helpcontext(0x00039dcd)]
        HRESULT HTML([out, retval] BSTR* RetValue);
        [id(0x00000004), propput, helpcontext(0x00039dcd)]
        HRESULT HTML([in] BSTR RetValue);
        [id(0x00000005), propget, helpcontext(0x00039dcf)]
        HRESULT Name([out, retval] BSTR* RetValue);
        [id(0x00000005), propput, helpcontext(0x00039dcf)]
        HRESULT Name([in] BSTR RetValue);
        [id(0x00000006), propget, helpcontext(0x00039dd1)]
        HRESULT Width([out, retval] long* RetValue);
        [id(0x00000006), propput, helpcontext(0x00039dd1)]
        HRESULT Width([in] long RetValue);
        [id(0x00000007), propget, helpcontext(0x00039dd3)]
        HRESULT Height([out, retval] long* RetValue);
        [id(0x00000007), propput, helpcontext(0x00039dd3)]
        HRESULT Height([in] long RetValue);
        [id(0x00000008), propget, helpcontext(0x00039dd5)]
        HRESULT PreviewGraphic([out, retval] BSTR* retval);
        [id(0x00000008), propput, helpcontext(0x00039dd5)]
        HRESULT PreviewGraphic([in] BSTR retval);
        [id(0x00000009), helpcontext(0x00039dd7)]
        HRESULT LaunchPropertiesWindow();
    };

    typedef enum {
        msoLanguageIDChineseHongKong = 3076,
        msoLanguageIDChineseMacao = 5124,
        msoLanguageIDEnglishTrinidad = 11273
    } MsoLanguageIDHidden;

    [
      odl,
      uuid(4CAC6328-B9B0-11D3-8D59-0050048384E3),
      hidden,
      dual,
      nonextensible,
      oleautomation
    ]
    interface ILicWizExternal : IDispatch {
        [id(0x00000001)]
        HRESULT PrintHtmlDocument([in] IUnknown* punkHtmlDoc);
        [id(0x00000002)]
        HRESULT InvokeDateTimeApplet();
        [id(0x00000003)]
        HRESULT FormatDate(
                        [in] DATE date, 
                        [in, optional, defaultvalue("")] BSTR pFormat, 
                        [out, retval] BSTR* pDateString);
        [id(0x00000004)]
        HRESULT ShowHelp([in, optional] VARIANT* pvarId);
        [id(0x00000005)]
        HRESULT Terminate();
        [id(0x00000006)]
        HRESULT DisableVORWReminder([in] long BPC);
        [id(0x00000007)]
        HRESULT SaveReceipt(
                        [in] BSTR bstrReceipt, 
                        [out, retval] BSTR* pbstrPath);
        [id(0x00000008)]
        HRESULT OpenInDefaultBrowser([in] BSTR bstrUrl);
        [id(0x00000009)]
        HRESULT MsoAlert(
                        [in] BSTR bstrText, 
                        [in] BSTR bstrButtons, 
                        [in] BSTR bstrIcon, 
                        [out, retval] long* plRet);
        [id(0x0000000a)]
        HRESULT DepositPidKey(
                        [in] BSTR bstrKey, 
                        [in] int fMORW, 
                        [out, retval] long* plRet);
        [id(0x0000000b)]
        HRESULT WriteLog([in] BSTR bstrMessage);
        [id(0x0000000c)]
        HRESULT ResignDpc([in] BSTR bstrProductCode);
        [id(0x0000000d)]
        HRESULT ResetPID();
        [id(0x0000000e)]
        HRESULT SetDialogSize(
                        [in] long dx, 
                        [in] long dy);
        [id(0x0000000f)]
        HRESULT VerifyClock(
                        [in] long lMode, 
                        [out, retval] long* plRet);
        [id(0x00000010)]
        HRESULT SortSelectOptions([in] IDispatch* pdispSelect);
        [id(0x00000011)]
        HRESULT InternetDisconnect();
        [id(0x00000012)]
        HRESULT GetConnectedState([out, retval] int* pfConnected);
        [id(0x00000014), propget]
        HRESULT Context([out, retval] long* plwctx);
        [id(0x00000015), propget]
        HRESULT Validator([out, retval] IDispatch** ppdispValidator);
        [id(0x00000016), propget]
        HRESULT LicAgent([out, retval] IDispatch** ppdispLicAgent);
        [id(0x00000017), propget]
        HRESULT CountryInfo([out, retval] BSTR* pbstrUrl);
        [id(0x00000018), propput]
        HRESULT WizardVisible([in] int rhs);
        [id(0x00000019), propput]
        HRESULT WizardTitle([in] BSTR rhs);
        [id(0x0000001a), propget]
        HRESULT AnimationEnabled([out, retval] int* fEnabled);
        [id(0x0000001b), propput]
        HRESULT CurrentHelpId([in] long rhs);
        [id(0x0000001c), propget]
        HRESULT OfficeOnTheWebUrl([out, retval] BSTR* bstrUrl);
    };

    [
      odl,
      uuid(919AA22C-B9AD-11D3-8D59-0050048384E3),
      hidden,
      dual,
      nonextensible,
      oleautomation
    ]
    interface ILicValidator : IDispatch {
        [id(0x00000001), propget]
        HRESULT Products([out, retval] VARIANT* pVariant);
        [id(0x00000002), propget]
        HRESULT Selection([out, retval] int* piSel);
        [id(0x00000002), propput]
        HRESULT Selection([in] int piSel);
    };

    [
      odl,
      uuid(00194002-D9C3-11D3-8D59-0050048384E3),
      helpstring("ILicAgent Interface"),
      hidden,
      dual,
      nonextensible,
      oleautomation
    ]
    interface ILicAgent : IDispatch {
        [id(0x00000001), helpstring("method Initialize")]
        HRESULT Initialize(
                        [in] unsigned long dwBPC, 
                        [in] unsigned long dwMode, 
                        [in] BSTR bstrLicSource, 
                        [out, retval] unsigned long* pdwRetCode);
        [id(0x00000003), helpstring("method GetFirstName")]
        HRESULT GetFirstName([out, retval] BSTR* pbstrVal);
        [id(0x00000004), helpstring("method SetFirstName")]
        HRESULT SetFirstName([in] BSTR bstrNewVal);
        [id(0x00000005), helpstring("method GetLastName")]
        HRESULT GetLastName([out, retval] BSTR* pbstrVal);
        [id(0x00000006), helpstring("method SetLastName")]
        HRESULT SetLastName([in] BSTR bstrNewVal);
        [id(0x00000007), helpstring("method GetOrgName")]
        HRESULT GetOrgName([out, retval] BSTR* pbstrVal);
        [id(0x00000008), helpstring("method SetOrgName")]
        HRESULT SetOrgName([in] BSTR bstrNewVal);
        [id(0x00000009), helpstring("method GetEmail")]
        HRESULT GetEmail([out, retval] BSTR* pbstrVal);
        [id(0x0000000a), helpstring("method SetEmail")]
        HRESULT SetEmail([in] BSTR bstrNewVal);
        [id(0x0000000b), helpstring("method GetPhone")]
        HRESULT GetPhone([out, retval] BSTR* pbstrVal);
        [id(0x0000000c), helpstring("method SetPhone")]
        HRESULT SetPhone([in] BSTR bstrNewVal);
        [id(0x0000000d), helpstring("method GetAddress1")]
        HRESULT GetAddress1([out, retval] BSTR* pbstrVal);
        [id(0x0000000e), helpstring("method SetAddress1")]
        HRESULT SetAddress1([in] BSTR bstrNewVal);
        [id(0x0000000f), helpstring("method GetCity")]
        HRESULT GetCity([out, retval] BSTR* pbstrVal);
        [id(0x00000010), helpstring("method SetCity")]
        HRESULT SetCity([in] BSTR bstrNewVal);
        [id(0x00000011), helpstring("method GetState")]
        HRESULT GetState([out, retval] BSTR* pbstrVal);
        [id(0x00000012), helpstring("method SetState")]
        HRESULT SetState([in] BSTR bstrNewVal);
        [id(0x00000013), helpstring("method GetCountryCode")]
        HRESULT GetCountryCode([out, retval] BSTR* pbstrVal);
        [id(0x00000014), helpstring("method SetCountryCode")]
        HRESULT SetCountryCode([in] BSTR bstrNewVal);
        [id(0x00000015), helpstring("method GetCountryDesc")]
        HRESULT GetCountryDesc([out, retval] BSTR* pbstrVal);
        [id(0x00000016), helpstring("method SetCountryDesc")]
        HRESULT SetCountryDesc([in] BSTR bstrNewVal);
        [id(0x00000017), helpstring("method GetZip")]
        HRESULT GetZip([out, retval] BSTR* pbstrVal);
        [id(0x00000018), helpstring("method SetZip")]
        HRESULT SetZip([in] BSTR bstrNewVal);
        [id(0x00000019), helpstring("method GetIsoLanguage")]
        HRESULT GetIsoLanguage([out, retval] unsigned long* pdwVal);
        [id(0x0000001a), helpstring("method SetIsoLanguage")]
        HRESULT SetIsoLanguage([in] unsigned long dwNewVal);
        [id(0x00000020), helpstring("method GetMSUpdate")]
        HRESULT GetMSUpdate([out, retval] BSTR* pbstrVal);
        [id(0x00000021), helpstring("method SetMSUpdate")]
        HRESULT SetMSUpdate([in] BSTR bstrNewVal);
        [id(0x00000022), helpstring("method GetMSOffer")]
        HRESULT GetMSOffer([out, retval] BSTR* pbstrVal);
        [id(0x00000023), helpstring("method SetMSOffer")]
        HRESULT SetMSOffer([in] BSTR bstrNewVal);
        [id(0x00000024), helpstring("method GetOtherOffer")]
        HRESULT GetOtherOffer([out, retval] BSTR* pbstrVal);
        [id(0x00000025), helpstring("method SetOtherOffer")]
        HRESULT SetOtherOffer([in] BSTR bstrNewVal);
        [id(0x00000026), helpstring("method GetAddress2")]
        HRESULT GetAddress2([out, retval] BSTR* pbstrVal);
        [id(0x00000027), helpstring("method SetAddress2")]
        HRESULT SetAddress2([in] BSTR bstrNewVal);
        [id(0x00000028), helpstring("method CheckSystemClock")]
        HRESULT CheckSystemClock([out, retval] unsigned long* pdwRetCode);
        [id(0x00000029), helpstring("method GetExistingExpiryDate")]
        HRESULT GetExistingExpiryDate([out, retval] DATE* pDateVal);
        [id(0x0000002a), helpstring("method GetNewExpiryDate")]
        HRESULT GetNewExpiryDate([out, retval] DATE* pDateVal);
        [id(0x0000002b), helpstring("method GetBillingFirstName")]
        HRESULT GetBillingFirstName([out, retval] BSTR* pbstrVal);
        [id(0x0000002c), helpstring("method SetBillingFirstName")]
        HRESULT SetBillingFirstName([in] BSTR bstrNewVal);
        [id(0x0000002d), helpstring("method GetBillingLastName")]
        HRESULT GetBillingLastName([out, retval] BSTR* pbstrVal);
        [id(0x0000002e), helpstring("method SetBillingLastName")]
        HRESULT SetBillingLastName([in] BSTR bstrNewVal);
        [id(0x0000002f), helpstring("method GetBillingPhone")]
        HRESULT GetBillingPhone([out, retval] BSTR* pbstrVal);
        [id(0x00000030), helpstring("method SetBillingPhone")]
        HRESULT SetBillingPhone([in] BSTR bstrNewVal);
        [id(0x00000031), helpstring("method GetBillingAddress1")]
        HRESULT GetBillingAddress1([out, retval] BSTR* pbstrVal);
        [id(0x00000032), helpstring("method SetBillingAddress1")]
        HRESULT SetBillingAddress1([in] BSTR bstrNewVal);
        [id(0x00000033), helpstring("method GetBillingAddress2")]
        HRESULT GetBillingAddress2([out, retval] BSTR* pbstrVal);
        [id(0x00000034), helpstring("method SetBillingAddress2")]
        HRESULT SetBillingAddress2([in] BSTR bstrNewVal);
        [id(0x00000035), helpstring("method GetBillingCity")]
        HRESULT GetBillingCity([out, retval] BSTR* pbstrVal);
        [id(0x00000036), helpstring("method SetBillingCity")]
        HRESULT SetBillingCity([in] BSTR bstrNewVal);
        [id(0x00000037), helpstring("method GetBillingState")]
        HRESULT GetBillingState([out, retval] BSTR* pbstrVal);
        [id(0x00000038), helpstring("method SetBillingState")]
        HRESULT SetBillingState([in] BSTR bstrNewVal);
        [id(0x00000039), helpstring("method GetBillingCountryCode")]
        HRESULT GetBillingCountryCode([out, retval] BSTR* pbstrVal);
        [id(0x0000003a), helpstring("method SetBillingCountryCode")]
        HRESULT SetBillingCountryCode([in] BSTR bstrNewVal);
        [id(0x0000003b), helpstring("method GetBillingZip")]
        HRESULT GetBillingZip([out, retval] BSTR* pbstrVal);
        [id(0x0000003c), helpstring("method SetBillingZip")]
        HRESULT SetBillingZip([in] BSTR bstrNewVal);
        [id(0x0000003d), helpstring("method SaveBillingInfo")]
        HRESULT SaveBillingInfo(
                        [in] int bSave, 
                        [out, retval] unsigned long* pdwRetVal);
        [id(0x00000040), helpstring("method IsCCRenewalCountry")]
        HRESULT IsCCRenewalCountry(
                        [in] BSTR bstrCountryCode, 
                        [out, retval] int* pbRetVal);
        [id(0x00000041), helpstring("method GetVATLabel")]
        HRESULT GetVATLabel(
                        [in] BSTR bstrCountryCode, 
                        [out, retval] BSTR* pbstrVATLabel);
        [id(0x00000042), helpstring("method GetCCRenewalExpiryDate")]
        HRESULT GetCCRenewalExpiryDate([out, retval] DATE* pDateVal);
        [id(0x00000043), helpstring("method SetVATNumber")]
        HRESULT SetVATNumber([in] BSTR bstrVATNumber);
        [id(0x00000044), helpstring("method SetCreditCardType")]
        HRESULT SetCreditCardType([in] BSTR bstrCCCode);
        [id(0x00000045), helpstring("method SetCreditCardNumber")]
        HRESULT SetCreditCardNumber([in] BSTR bstrCCNumber);
        [id(0x00000046), helpstring("method SetCreditCardExpiryYear")]
        HRESULT SetCreditCardExpiryYear([in] unsigned long dwCCYear);
        [id(0x00000047), helpstring("method SetCreditCardExpiryMonth")]
        HRESULT SetCreditCardExpiryMonth([in] unsigned long dwCCMonth);
        [id(0x00000048), helpstring("method GetCreditCardCount")]
        HRESULT GetCreditCardCount([out, retval] unsigned long* pdwCount);
        [id(0x00000049), helpstring("method GetCreditCardCode")]
        HRESULT GetCreditCardCode(
                        [in] unsigned long dwIndex, 
                        [out, retval] BSTR* pbstrCode);
        [id(0x0000004a), helpstring("method GetCreditCardName")]
        HRESULT GetCreditCardName(
                        [in] unsigned long dwIndex, 
                        [out, retval] BSTR* pbstrName);
        [id(0x0000004b), helpstring("method GetVATNumber")]
        HRESULT GetVATNumber([out, retval] BSTR* pbstrVATNumber);
        [id(0x0000004c), helpstring("method GetCreditCardType")]
        HRESULT GetCreditCardType([out, retval] BSTR* pbstrCCCode);
        [id(0x0000004d), helpstring("method GetCreditCardNumber")]
        HRESULT GetCreditCardNumber([out, retval] BSTR* pbstrCCNumber);
        [id(0x0000004e), helpstring("method GetCreditCardExpiryYear")]
        HRESULT GetCreditCardExpiryYear([out, retval] unsigned long* pdwCCYear);
        [id(0x0000004f), helpstring("method GetCreditCardExpiryMonth")]
        HRESULT GetCreditCardExpiryMonth([out, retval] unsigned long* pdwCCMonth);
        [id(0x00000050), helpstring("method GetDisconnectOption")]
        HRESULT GetDisconnectOption([out, retval] int* pbRetVal);
        [id(0x00000051), helpstring("method SetDisconnectOption")]
        HRESULT SetDisconnectOption([in] int bNewVal);
        [id(0x00000052), helpstring("method AsyncProcessHandshakeRequest")]
        HRESULT AsyncProcessHandshakeRequest([in] int bReviseCustInfo);
        [id(0x00000053), helpstring("method AsyncProcessNewLicenseRequest")]
        HRESULT AsyncProcessNewLicenseRequest();
        [id(0x00000054), helpstring("method AsyncProcessReissueLicenseRequest")]
        HRESULT AsyncProcessReissueLicenseRequest();
        [id(0x00000055), helpstring("method AsyncProcessRetailRenewalLicenseRequest")]
        HRESULT AsyncProcessRetailRenewalLicenseRequest();
        [id(0x00000056), helpstring("method AsyncProcessReviseCustInfoRequest")]
        HRESULT AsyncProcessReviseCustInfoRequest();
        [id(0x00000057), helpstring("method AsyncProcessCCRenewalPriceRequest")]
        HRESULT AsyncProcessCCRenewalPriceRequest();
        [id(0x00000058), helpstring("method AsyncProcessCCRenewalLicenseRequest")]
        HRESULT AsyncProcessCCRenewalLicenseRequest();
        [id(0x0000005a), helpstring("method GetAsyncProcessReturnCode")]
        HRESULT GetAsyncProcessReturnCode([out, retval] unsigned long* pdwRetCode);
        [id(0x0000005b), helpstring("method IsUpgradeAvailable")]
        HRESULT IsUpgradeAvailable([out, retval] int* pbUpgradeAvailable);
        [id(0x0000005c), helpstring("method WantUpgrade")]
        HRESULT WantUpgrade([in] int bWantUpgrade);
        [id(0x0000005d), helpstring("method AsyncProcessDroppedLicenseRequest")]
        HRESULT AsyncProcessDroppedLicenseRequest();
        [id(0x0000005e), helpstring("method GenerateInstallationId")]
        HRESULT GenerateInstallationId([out, retval] BSTR* pbstrVal);
        [id(0x0000005f), helpstring("method DepositConfirmationId")]
        HRESULT DepositConfirmationId(
                        [in] BSTR bstrVal, 
                        [out, retval] unsigned long* pdwRetCode);
        [id(0x00000060), helpstring("method VerifyCheckDigits")]
        HRESULT VerifyCheckDigits(
                        [in] BSTR bstrCIDIID, 
                        [out, retval] int* pbValue);
        [id(0x00000061), helpstring("method GetCurrentExpiryDate")]
        HRESULT GetCurrentExpiryDate([out, retval] DATE* pDateVal);
        [id(0x00000062), helpstring("method CancelAsyncProcessRequest")]
        HRESULT CancelAsyncProcessRequest([in] int bIsLicenseRequest);
        [id(0x00000064), helpstring("method GetCurrencyDescription")]
        HRESULT GetCurrencyDescription(
                        [in] unsigned long dwCurrencyIndex, 
                        [out, retval] BSTR* pbstrVal);
        [id(0x00000065), helpstring("method GetPriceItemCount")]
        HRESULT GetPriceItemCount([out, retval] unsigned long* pdwCount);
        [id(0x00000066), helpstring("method GetPriceItemLabel")]
        HRESULT GetPriceItemLabel(
                        [in] unsigned long dwIndex, 
                        [out, retval] BSTR* pbstrVal);
        [id(0x00000067), helpstring("method GetPriceItemValue")]
        HRESULT GetPriceItemValue(
                        [in] unsigned long dwCurrencyIndex, 
                        [in] unsigned long dwIndex, 
                        [out, retval] BSTR* pbstrVal);
        [id(0x00000068), helpstring("method GetInvoiceText")]
        HRESULT GetInvoiceText([out, retval] BSTR* pNewVal);
        [id(0x00000069), helpstring("method GetBackendErrorMsg")]
        HRESULT GetBackendErrorMsg([out, retval] BSTR* pbstrErrMsg);
        [id(0x0000006a), helpstring("method GetCurrencyOption")]
        HRESULT GetCurrencyOption([out, retval] unsigned long* dwCurrencyOption);
        [id(0x0000006b), helpstring("method SetCurrencyOption")]
        HRESULT SetCurrencyOption([in] unsigned long dwCurrencyOption);
        [id(0x0000006c), helpstring("method GetEndOfLifeHtmlText")]
        HRESULT GetEndOfLifeHtmlText([out, retval] BSTR* pbstrHtmlText);
        [id(0x0000006d), helpstring("method DisplaySSLCert")]
        HRESULT DisplaySSLCert([out, retval] unsigned long* dwRetCode);
    };

    [
      odl,
      uuid(000C0372-0000-0000-C000-000000000046),
      helpcontext(0x0003a1b0),
      hidden,
      dual,
      nonextensible,
      oleautomation
    ]
    interface IMsoEServicesDialog : IDispatch {
        [id(0x60020000)]
        HRESULT Close([in, optional, defaultvalue(0)] VARIANT_BOOL ApplyWebComponentChanges);
        [id(0x60020001)]
        HRESULT AddTrustedDomain([in] BSTR Domain);
        [id(0x60020002), propget]
        HRESULT ApplicationName([out, retval] BSTR* retval);
        [id(0x60020003), propget]
        HRESULT Application([out, retval] IDispatch** ppdisp);
        [id(0x60020004), propget]
        HRESULT WebComponent([out, retval] IDispatch** ppdisp);
        [id(0x60020005), propget]
        HRESULT ClipArt([out, retval] IDispatch** ppdisp);
    };

    [
      odl,
      uuid(000C0373-0000-0000-C000-000000000046),
      helpcontext(0x0003a598),
      hidden,
      dual,
      nonextensible,
      oleautomation
    ]
    interface WebComponentProperties : IDispatch {
        [id(0x00000001), propget]
        HRESULT Shape([out, retval] IDispatch** RetValue);
        [id(0x00000002), propget]
        HRESULT Name([out, retval] BSTR* RetValue);
        [id(0x00000002), propput]
        HRESULT Name([in] BSTR RetValue);
        [id(0x00000003), propget]
        HRESULT URL([out, retval] BSTR* RetValue);
        [id(0x00000003), propput]
        HRESULT URL([in] BSTR RetValue);
        [id(0x00000004), propget]
        HRESULT HTML([out, retval] BSTR* RetValue);
        [id(0x00000004), propput]
        HRESULT HTML([in] BSTR RetValue);
        [id(0x00000005), propget]
        HRESULT PreviewGraphic([out, retval] BSTR* RetValue);
        [id(0x00000005), propput]
        HRESULT PreviewGraphic([in] BSTR RetValue);
        [id(0x00000006), propget]
        HRESULT PreviewHTML([out, retval] BSTR* RetValue);
        [id(0x00000006), propput]
        HRESULT PreviewHTML([in] BSTR RetValue);
        [id(0x00000007), propget]
        HRESULT Width([out, retval] long* RetValue);
        [id(0x00000007), propput]
        HRESULT Width([in] long RetValue);
        [id(0x00000008), propget]
        HRESULT Height([out, retval] long* RetValue);
        [id(0x00000008), propput]
        HRESULT Height([in] long RetValue);
        [id(0x00000009), propget]
        HRESULT Tag([out, retval] BSTR* RetValue);
        [id(0x00000009), propput]
        HRESULT Tag([in] BSTR RetValue);
    };

    [
      odl,
      uuid(000C0377-0000-0000-C000-000000000046),
      helpcontext(0x0003ff70),
      dual,
      nonextensible,
      oleautomation
    ]
    interface SmartDocument : _IMsoDispObj {
        [id(0x00000001), propget, helpcontext(0x0003ff71)]
        HRESULT SolutionID([out, retval] BSTR* pbstrID);
        [id(0x00000001), propput, helpcontext(0x0003ff71)]
        HRESULT SolutionID([in] BSTR pbstrID);
        [id(0x00000002), propget, helpcontext(0x0003ff72)]
        HRESULT SolutionURL([out, retval] BSTR* pbstrUrl);
        [id(0x00000002), propput, helpcontext(0x0003ff72)]
        HRESULT SolutionURL([in] BSTR pbstrUrl);
        [id(0x00000003), helpcontext(0x0003ff73)]
        HRESULT PickSolution([in, optional, defaultvalue(0)] VARIANT_BOOL ConsiderAllSchemas);
        [id(0x00000004), helpcontext(0x0003ff74)]
        HRESULT RefreshPane();
    };

    [
      odl,
      uuid(000C0381-0000-0000-C000-000000000046),
      helpcontext(0x00042680),
      dual,
      nonextensible,
      oleautomation
    ]
    interface SharedWorkspaceMember : _IMsoDispObj {
        [id(00000000), propget, helpcontext(0x00042681)]
        HRESULT DomainName([out, retval] BSTR* pbstrDomainName);
        [id(0x00000001), propget, helpcontext(0x00042682)]
        HRESULT Name([out, retval] BSTR* pbstrName);
        [id(0x00000002), propget, helpcontext(0x00042683)]
        HRESULT Email([out, retval] BSTR* pbstrEmail);
        [id(0x00000003), helpcontext(0x00042684)]
        HRESULT Delete();
        [id(0x00000004), propget, hidden]
        HRESULT Id([out, retval] BSTR* Id);
        [id(0x00000005), propget, helpcontext(0x00042685)]
        HRESULT Parent([out, retval] IDispatch** ppidisp);
    };

    [
      odl,
      uuid(000C0382-0000-0000-C000-000000000046),
      helpcontext(0x00042a68),
      dual,
      nonextensible,
      oleautomation
    ]
    interface SharedWorkspaceMembers : _IMsoDispObj {
        [id(0xfffffffc), propget]
        HRESULT _NewEnum([out, retval] IUnknown** ppienum);
        [id(00000000), propget, helpcontext(0x00042a69)]
        HRESULT Item(
                        [in] int Index, 
                        [out, retval] SharedWorkspaceMember** ppidisp);
        [id(0x00000001), propget, helpcontext(0x00042a6a)]
        HRESULT Count([out, retval] int* pcItems);
        [id(0x00000002), helpcontext(0x00042a6b)]
        HRESULT Add(
                        [in] BSTR Email, 
                        [in] BSTR DomainName, 
                        [in] BSTR DisplayName, 
                        [in, optional] VARIANT Role, 
                        [out, retval] SharedWorkspaceMember** ppMember);
        [id(0x00000003), propget, helpcontext(0x00042a6c)]
        HRESULT Parent([out, retval] IDispatch** ppidisp);
        [id(0x00000004), propget, helpcontext(0x00042a6d)]
        HRESULT ItemCountExceeded([out, retval] VARIANT_BOOL* pf);
    };

    typedef enum {
        msoSharedWorkspaceTaskStatusNotStarted = 1,
        msoSharedWorkspaceTaskStatusInProgress = 2,
        msoSharedWorkspaceTaskStatusCompleted = 3,
        msoSharedWorkspaceTaskStatusDeferred = 4,
        msoSharedWorkspaceTaskStatusWaiting = 5
    } MsoSharedWorkspaceTaskStatus;

    typedef enum {
        msoSharedWorkspaceTaskPriorityHigh = 1,
        msoSharedWorkspaceTaskPriorityNormal = 2,
        msoSharedWorkspaceTaskPriorityLow = 3
    } MsoSharedWorkspaceTaskPriority;

    [
      odl,
      uuid(000C0379-0000-0000-C000-000000000046),
      helpcontext(0x00040740),
      dual,
      nonextensible,
      oleautomation
    ]
    interface SharedWorkspaceTask : _IMsoDispObj {
        [id(00000000), propget, helpcontext(0x00040741)]
        HRESULT Title([out, retval] BSTR* Title);
        [id(00000000), propput, helpcontext(0x00040741)]
        HRESULT Title([in] BSTR Title);
        [id(0x00000001), propget, helpcontext(0x00040742)]
        HRESULT AssignedTo([out, retval] BSTR* AssignedTo);
        [id(0x00000001), propput, helpcontext(0x00040742)]
        HRESULT AssignedTo([in] BSTR AssignedTo);
        [id(0x00000002), propget, helpcontext(0x00040743)]
        HRESULT Status([out, retval] MsoSharedWorkspaceTaskStatus* Status);
        [id(0x00000002), propput, helpcontext(0x00040743)]
        HRESULT Status([in] MsoSharedWorkspaceTaskStatus Status);
        [id(0x00000003), propget, helpcontext(0x00040744)]
        HRESULT Priority([out, retval] MsoSharedWorkspaceTaskPriority* Priority);
        [id(0x00000003), propput, helpcontext(0x00040744)]
        HRESULT Priority([in] MsoSharedWorkspaceTaskPriority Priority);
        [id(0x00000004), propget, helpcontext(0x00040745)]
        HRESULT Description([out, retval] BSTR* Description);
        [id(0x00000004), propput, helpcontext(0x00040745)]
        HRESULT Description([in] BSTR Description);
        [id(0x00000005), propget, helpcontext(0x00040746)]
        HRESULT DueDate([out, retval] VARIANT* DueDate);
        [id(0x00000005), propput, helpcontext(0x00040746)]
        HRESULT DueDate([in] VARIANT DueDate);
        [id(0x00000006), propget, helpcontext(0x00040747)]
        HRESULT CreatedBy([out, retval] BSTR* CreatedBy);
        [id(0x00000007), propget, helpcontext(0x00040748)]
        HRESULT CreatedDate([out, retval] VARIANT* CreatedDate);
        [id(0x00000008), propget, helpcontext(0x00040749)]
        HRESULT ModifiedBy([out, retval] BSTR* ModifiedBy);
        [id(0x00000009), propget, helpcontext(0x0004074a)]
        HRESULT ModifiedDate([out, retval] VARIANT* ModifiedDate);
        [id(0x0000000a), helpcontext(0x0028488b)]
        HRESULT Save();
        [id(0x0000000b), helpcontext(0x00040364)]
        HRESULT Delete();
        [id(0x0000000c), propget, helpcontext(0x00040365)]
        HRESULT Parent([out, retval] IDispatch** ppidisp);
    };

    [
      odl,
      uuid(000C037A-0000-0000-C000-000000000046),
      helpcontext(0x00040b28),
      dual,
      nonextensible,
      oleautomation
    ]
    interface SharedWorkspaceTasks : _IMsoDispObj {
        [id(00000000), propget, helpcontext(0x00040b29)]
        HRESULT Item(
                        [in] int Index, 
                        [out, retval] SharedWorkspaceTask** ppidisp);
        [id(0x00000001), propget, helpcontext(0x00040b2a)]
        HRESULT Count([out, retval] int* pcItems);
        [id(0x00000002), helpcontext(0x00040b2b)]
        HRESULT Add(
                        [in] BSTR Title, 
                        [in, optional] VARIANT Status, 
                        [in, optional] VARIANT Priority, 
                        [in, optional] VARIANT Assignee, 
                        [in, optional] VARIANT Description, 
                        [in, optional] VARIANT DueDate, 
                        [out, retval] SharedWorkspaceTask** ppTask);
        [id(0x00000003), propget, helpcontext(0x00040b2c)]
        HRESULT Parent([out, retval] IDispatch** ppidisp);
        [id(0x00000004), propget, helpcontext(0x00040b2d)]
        HRESULT ItemCountExceeded([out, retval] VARIANT_BOOL* pf);
        [id(0xfffffffc), propget]
        HRESULT _NewEnum([out, retval] IUnknown** ppienum);
    };

    [
      odl,
      uuid(000C037B-0000-0000-C000-000000000046),
      helpcontext(0x00040f10),
      dual,
      nonextensible,
      oleautomation
    ]
    interface SharedWorkspaceFile : _IMsoDispObj {
        [id(00000000), propget, helpcontext(0x00040f11)]
        HRESULT URL([out, retval] BSTR* pbstrFilename);
        [id(0x00000001), propget, helpcontext(0x00040f12)]
        HRESULT CreatedBy([out, retval] BSTR* pbstrCreatedBy);
        [id(0x00000002), propget, helpcontext(0x00040f13)]
        HRESULT CreatedDate([out, retval] VARIANT* CreatedDate);
        [id(0x00000003), propget, helpcontext(0x00040f14)]
        HRESULT ModifiedBy([out, retval] BSTR* pbstrModifiedBy);
        [id(0x00000004), propget, helpcontext(0x00040f15)]
        HRESULT ModifiedDate([out, retval] VARIANT* ModifiedDate);
        [id(0x00000005), helpcontext(0x00040f16)]
        HRESULT Delete();
        [id(0x00000006), propget, helpcontext(0x00040f17)]
        HRESULT Parent([out, retval] IDispatch** ppidisp);
    };

    [
      odl,
      uuid(000C037C-0000-0000-C000-000000000046),
      helpcontext(0x000412f8),
      dual,
      nonextensible,
      oleautomation
    ]
    interface SharedWorkspaceFiles : _IMsoDispObj {
        [id(0xfffffffc), propget]
        HRESULT _NewEnum([out, retval] IUnknown** ppienum);
        [id(00000000), propget, helpcontext(0x000412f9)]
        HRESULT Item(
                        [in] int Index, 
                        [out, retval] SharedWorkspaceFile** ppidisp);
        [id(0x00000001), propget, helpcontext(0x000412fa)]
        HRESULT Count([out, retval] int* pcItems);
        [id(0x00000002), helpcontext(0x000412fb)]
        HRESULT Add(
                        [in] BSTR FileName, 
                        [in, optional] VARIANT ParentFolder, 
                        [in, optional] VARIANT OverwriteIfFileAlreadyExists, 
                        [in, optional] VARIANT KeepInSync, 
                        [out, retval] SharedWorkspaceFile** ppFile);
        [id(0x00000003), propget, helpcontext(0x000412fc)]
        HRESULT Parent([out, retval] IDispatch** ppidisp);
        [id(0x00000004), propget, helpcontext(0x000412fd)]
        HRESULT ItemCountExceeded([out, retval] VARIANT_BOOL* pf);
    };

    [
      odl,
      uuid(000C037D-0000-0000-C000-000000000046),
      helpcontext(0x000416e0),
      dual,
      nonextensible,
      oleautomation
    ]
    interface SharedWorkspaceFolder : _IMsoDispObj {
        [id(00000000), propget, helpcontext(0x000416e1)]
        HRESULT FolderName([out, retval] BSTR* FolderName);
        [id(0x00000001), helpcontext(0x000416e6)]
        HRESULT Delete([in, optional] VARIANT DeleteEventIfFolderContainsFiles);
        [id(0x00000002), propget, helpcontext(0x000416e7)]
        HRESULT Parent([out, retval] IDispatch** ppidisp);
    };

    [
      odl,
      uuid(000C037E-0000-0000-C000-000000000046),
      helpcontext(0x00041ac8),
      dual,
      nonextensible,
      oleautomation
    ]
    interface SharedWorkspaceFolders : _IMsoDispObj {
        [id(0xfffffffc), propget]
        HRESULT _NewEnum([out, retval] IUnknown** ppienum);
        [id(00000000), propget, helpcontext(0x00041ac9)]
        HRESULT Item(
                        [in] int Index, 
                        [out, retval] SharedWorkspaceFolder** ppidisp);
        [id(0x00000001), propget, helpcontext(0x00041aca)]
        HRESULT Count([out, retval] int* pcItems);
        [id(0x00000002), helpcontext(0x00041acb)]
        HRESULT Add(
                        [in] BSTR FolderName, 
                        [in, optional] VARIANT ParentFolder, 
                        [out, retval] SharedWorkspaceFolder** ppFolder);
        [id(0x00000003), propget, helpcontext(0x00041acc)]
        HRESULT Parent([out, retval] IDispatch** ppidisp);
        [id(0x00000004), propget, helpcontext(0x00041acd)]
        HRESULT ItemCountExceeded([out, retval] VARIANT_BOOL* pf);
    };

    [
      odl,
      uuid(000C037F-0000-0000-C000-000000000046),
      helpcontext(0x00041eb0),
      dual,
      nonextensible,
      oleautomation
    ]
    interface SharedWorkspaceLink : _IMsoDispObj {
        [id(00000000), propget, helpcontext(0x00041eb1)]
        HRESULT URL([out, retval] BSTR* URL);
        [id(00000000), propput, helpcontext(0x00041eb1)]
        HRESULT URL([in] BSTR URL);
        [id(0x00000001), propget, helpcontext(0x00041eb2)]
        HRESULT Description([out, retval] BSTR* Description);
        [id(0x00000001), propput, helpcontext(0x00041eb2)]
        HRESULT Description([in] BSTR Description);
        [id(0x00000002), propget, helpcontext(0x00041eb3)]
        HRESULT Notes([out, retval] BSTR* Notes);
        [id(0x00000002), propput, helpcontext(0x00041eb3)]
        HRESULT Notes([in] BSTR Notes);
        [id(0x00000003), propget, helpcontext(0x00041eb4)]
        HRESULT CreatedBy([out, retval] BSTR* CreatedBy);
        [id(0x00000004), propget, helpcontext(0x00041eb5)]
        HRESULT CreatedDate([out, retval] VARIANT* CreatedDate);
        [id(0x00000005), propget, helpcontext(0x00041eb6)]
        HRESULT ModifiedBy([out, retval] BSTR* ModifiedBy);
        [id(0x00000006), propget, helpcontext(0x00041eb7)]
        HRESULT ModifiedDate([out, retval] VARIANT* ModifiedDate);
        [id(0x00000007), helpcontext(0x00041eb8)]
        HRESULT Save();
        [id(0x00000008), helpcontext(0x00041eb9)]
        HRESULT Delete();
        [id(0x00000009), propget, helpcontext(0x00041eba)]
        HRESULT Parent([out, retval] IDispatch** ppidisp);
    };

    [
      odl,
      uuid(000C0380-0000-0000-C000-000000000046),
      helpcontext(0x00042298),
      dual,
      nonextensible,
      oleautomation
    ]
    interface SharedWorkspaceLinks : _IMsoDispObj {
        [id(0xfffffffc), propget]
        HRESULT _NewEnum([out, retval] IUnknown** ppienum);
        [id(00000000), propget, helpcontext(0x00042299)]
        HRESULT Item(
                        [in] int Index, 
                        [out, retval] SharedWorkspaceLink** ppidisp);
        [id(0x00000001), propget, helpcontext(0x0004229a)]
        HRESULT Count([out, retval] int* pcItems);
        [id(0x00000002), helpcontext(0x0004229b)]
        HRESULT Add(
                        [in] BSTR URL, 
                        [in, optional] VARIANT Description, 
                        [in, optional] VARIANT Notes, 
                        [out, retval] SharedWorkspaceLink** ppLink);
        [id(0x00000003), propget, helpcontext(0x0004229c)]
        HRESULT Parent([out, retval] IDispatch** ppidisp);
        [id(0x00000004), propget, helpcontext(0x0004229d)]
        HRESULT ItemCountExceeded([out, retval] VARIANT_BOOL* pf);
    };

    [
      odl,
      uuid(000C0385-0000-0000-C000-000000000046),
      helpcontext(0x00043620),
      dual,
      nonextensible,
      oleautomation
    ]
    interface SharedWorkspace : _IMsoDispObj {
        [id(00000000), propget, helpcontext(0x00043621)]
        HRESULT Name([out, retval] BSTR* Name);
        [id(00000000), propput, helpcontext(0x00043621)]
        HRESULT Name([in] BSTR Name);
        [id(0x00000001), propget, helpcontext(0x00043622)]
        HRESULT Members([out, retval] SharedWorkspaceMembers** ppMembers);
        [id(0x00000002), propget, helpcontext(0x00043623)]
        HRESULT Tasks([out, retval] SharedWorkspaceTasks** ppTasks);
        [id(0x00000003), propget, helpcontext(0x00043624)]
        HRESULT Files([out, retval] SharedWorkspaceFiles** ppFiles);
        [id(0x00000004), propget, helpcontext(0x00043625)]
        HRESULT Folders([out, retval] SharedWorkspaceFolders** ppFolders);
        [id(0x00000005), propget, helpcontext(0x00043626)]
        HRESULT Links([out, retval] SharedWorkspaceLinks** ppLinks);
        [id(0x00000006), helpcontext(0x00043627)]
        HRESULT Refresh();
        [id(0x00000007), helpcontext(0x00043628)]
        HRESULT CreateNew(
                        [in, optional] VARIANT URL, 
                        [in, optional] VARIANT Name);
        [id(0x00000008), helpcontext(0x00043629)]
        HRESULT Delete();
        [id(0x00000009), propget, helpcontext(0x0004362a)]
        HRESULT Parent([out, retval] IDispatch** ppidisp);
        [id(0x0000000a), propget, helpcontext(0x0004362b)]
        HRESULT URL([out, retval] BSTR* pbstrUrl);
        [id(0x0000000b), propget, helpcontext(0x0004362c)]
        HRESULT Connected([out, retval] VARIANT_BOOL* pfConnected);
        [id(0x0000000c), propget, helpcontext(0x0004362d)]
        HRESULT LastRefreshed([out, retval] VARIANT* pvarLastRefreshed);
        [id(0x0000000d), propget, helpcontext(0x0004362e)]
        HRESULT SourceURL([out, retval] BSTR* pbstrSourceURL);
        [id(0x0000000d), propput, helpcontext(0x0004362e)]
        HRESULT SourceURL([in] BSTR pbstrSourceURL);
        [id(0x0000000e), helpcontext(0x0004362f)]
        HRESULT RemoveDocument();
        [id(0x0000000f), helpcontext(0x00043630)]
        HRESULT Disconnect();
    };

    typedef enum {
        msoSyncVersionLastViewed = 0,
        msoSyncVersionServer = 1
    } MsoSyncVersionType;

    typedef enum {
        msoSyncConflictClientWins = 0,
        msoSyncConflictServerWins = 1,
        msoSyncConflictMerge = 2
    } MsoSyncConflictResolutionType;

    typedef enum {
        msoSyncCompareAndMerge = 0,
        msoSyncCompareSideBySide = 1
    } MsoSyncCompareType;

    typedef enum {
        msoSyncAvailableNone = 0,
        msoSyncAvailableOffline = 1,
        msoSyncAvailableAnywhere = 2
    } MsoSyncAvailableType;

    typedef enum {
        msoSyncEventDownloadInitiated = 0,
        msoSyncEventDownloadSucceeded = 1,
        msoSyncEventDownloadFailed = 2,
        msoSyncEventUploadInitiated = 3,
        msoSyncEventUploadSucceeded = 4,
        msoSyncEventUploadFailed = 5,
        msoSyncEventDownloadNoChange = 6,
        msoSyncEventOffline = 7
    } MsoSyncEventType;

    typedef enum {
        msoSyncErrorNone = 0,
        msoSyncErrorUnauthorizedUser = 1,
        msoSyncErrorCouldNotConnect = 2,
        msoSyncErrorOutOfSpace = 3,
        msoSyncErrorFileNotFound = 4,
        msoSyncErrorFileTooLarge = 5,
        msoSyncErrorFileInUse = 6,
        msoSyncErrorVirusUpload = 7,
        msoSyncErrorVirusDownload = 8,
        msoSyncErrorUnknownUpload = 9,
        msoSyncErrorUnknownDownload = 10,
        msoSyncErrorCouldNotOpen = 11,
        msoSyncErrorCouldNotUpdate = 12,
        msoSyncErrorCouldNotCompare = 13,
        msoSyncErrorCouldNotResolve = 14,
        msoSyncErrorNoNetwork = 15,
        msoSyncErrorUnknown = 16
    } MsoSyncErrorType;

    typedef enum {
        msoSyncStatusNoSharedWorkspace = 0,
        msoSyncStatusLatest = 1,
        msoSyncStatusNewerAvailable = 2,
        msoSyncStatusLocalChanges = 3,
        msoSyncStatusConflict = 4,
        msoSyncStatusSuspended = 5,
        msoSyncStatusError = 6
    } MsoSyncStatusType;

    [
      odl,
      uuid(000C0386-0000-0000-C000-000000000046),
      helpcontext(0x00043a08),
      dual,
      nonextensible,
      oleautomation
    ]
    interface Sync : _IMsoDispObj {
        [id(00000000), propget, helpcontext(0x00043a09)]
        HRESULT Status([out, retval] MsoSyncStatusType* pStatusType);
        [id(0x00000001), propget, helpcontext(0x00043a0a)]
        HRESULT WorkspaceLastChangedBy([out, retval] BSTR* pbstrWorkspaceLastChangedBy);
        [id(0x00000002), propget, helpcontext(0x00043a0b)]
        HRESULT LastSyncTime([out, retval] VARIANT* pdatSavedTo);
        [id(0x00000004), propget, helpcontext(0x00043a0d)]
        HRESULT ErrorType([out, retval] MsoSyncErrorType* pErrorType);
        [id(0x00000006), helpcontext(0x00043a0f)]
        HRESULT GetUpdate();
        [id(0x00000007), helpcontext(0x00043a10)]
        HRESULT PutUpdate();
        [id(0x00000008), helpcontext(0x00043a11)]
        HRESULT OpenVersion([in] MsoSyncVersionType SyncVersionType);
        [id(0x00000009), helpcontext(0x00043a12)]
        HRESULT ResolveConflict([in] MsoSyncConflictResolutionType SyncConflictResolution);
        [id(0x0000000a), helpcontext(0x00043a13)]
        HRESULT Unsuspend();
        [id(0x0000000e), propget, helpcontext(0x00043a17)]
        HRESULT Parent([out, retval] IDispatch** ppidisp);
    };

    [
      odl,
      uuid(000C0387-0000-0000-C000-000000000046),
      helpcontext(0x00043a16),
      dual,
      nonextensible,
      oleautomation
    ]
    interface DocumentLibraryVersion : _IMsoDispObj {
        [id(00000000), propget, helpcontext(0x00043a19)]
        HRESULT Modified([out, retval] VARIANT* pvarDate);
        [id(0x00000001), propget, helpcontext(0x00043a1a)]
        HRESULT Index([out, retval] long* lIndex);
        [id(0x00000002), propget, helpcontext(0x00043a1b)]
        HRESULT Parent([out, retval] IDispatch** ppidisp);
        [id(0x00000003), propget, helpcontext(0x00043a1c)]
        HRESULT ModifiedBy([out, retval] BSTR* userName);
        [id(0x00000004), propget, helpcontext(0x00043a1d)]
        HRESULT Comments([out, retval] BSTR* Comments);
        [id(0x00000005), helpcontext(0x00043a1e)]
        HRESULT Delete();
        [id(0x00000006), helpcontext(0x00043a1f)]
        HRESULT Open([out, retval] IDispatch** ppdispOpened);
        [id(0x00000007), helpcontext(0x00043a20)]
        HRESULT Restore([out, retval] IDispatch** ppdispOpened);
    };

    [
      odl,
      uuid(000C0388-0000-0000-C000-000000000046),
      helpcontext(0x00043a22),
      dual,
      nonextensible,
      oleautomation
    ]
    interface DocumentLibraryVersions : _IMsoDispObj {
        [id(00000000), propget, helpcontext(0x00043a23)]
        HRESULT Item(
                        [in] long lIndex, 
                        [out, retval] DocumentLibraryVersion** ppidisp);
        [id(0x00000001), propget, helpcontext(0x00043a24)]
        HRESULT Count([out, retval] long* lCount);
        [id(0x00000002), propget, helpcontext(0x00043a25)]
        HRESULT Parent([out, retval] IDispatch** ppidisp);
        [id(0x00000003), propget, helpcontext(0x00043a26)]
        HRESULT IsVersioningEnabled([out, retval] VARIANT_BOOL* pvarfVersioningOn);
        [id(0xfffffffc), propget]
        HRESULT _NewEnum([out, retval] IUnknown** ppienum);
    };

    typedef enum {
        msoPermissionView = 1,
        msoPermissionRead = 1,
        msoPermissionEdit = 2,
        msoPermissionSave = 4,
        msoPermissionExtract = 8,
        msoPermissionChange = 15,
        msoPermissionPrint = 16,
        msoPermissionObjModel = 32,
        msoPermissionFullControl = 64
    } MsoPermission;

    [
      odl,
      uuid(000C0375-0000-0000-C000-000000000046),
      helpcontext(0x0003f7a0),
      dual,
      nonextensible,
      oleautomation
    ]
    interface UserPermission : _IMsoDispObj {
        [id(00000000), propget, helpcontext(0x0003f7a1)]
        HRESULT UserId([out, retval] BSTR* UserId);
        [id(0x00000001), propget, helpcontext(0x0003f7a2)]
        HRESULT Permission([out, retval] long* Permission);
        [id(0x00000001), propput, helpcontext(0x0003f7a2)]
        HRESULT Permission([in] long Permission);
        [id(0x00000002), propget, helpcontext(0x0003f7a3)]
        HRESULT ExpirationDate([out, retval] VARIANT* ExpirationDate);
        [id(0x00000002), propput, helpcontext(0x0003f7a3)]
        HRESULT ExpirationDate([in] VARIANT ExpirationDate);
        [id(0x00000003), propget, helpcontext(0x0003f7a4)]
        HRESULT Parent([out, retval] IDispatch** ppidisp);
        [id(0x00000004), helpcontext(0x0003f7a5)]
        HRESULT Remove();
    };

    [
      odl,
      uuid(000C0376-0000-0000-C000-000000000046),
      helpcontext(0x0003fb88),
      dual,
      nonextensible,
      oleautomation
    ]
    interface Permission : _IMsoDispObj {
        [id(00000000), propget, helpcontext(0x0003fb89)]
        HRESULT Item(
                        [in] VARIANT Index, 
                        [out, retval] UserPermission** UserPerm);
        [id(0x00000001), propget, helpcontext(0x0003fb8a)]
        HRESULT Count([out, retval] long* Count);
        [id(0x00000002), propget, helpcontext(0x0003fb8b)]
        HRESULT EnableTrustedBrowser([out, retval] VARIANT_BOOL* Enable);
        [id(0x00000002), propput, helpcontext(0x0003fb8b)]
        HRESULT EnableTrustedBrowser([in] VARIANT_BOOL Enable);
        [id(0x00000003), helpcontext(0x0003fb8c)]
        HRESULT Add(
                        [in] BSTR UserId, 
                        [in, optional] VARIANT Permission, 
                        [in, optional] VARIANT ExpirationDate, 
                        [out, retval] UserPermission** UserPerm);
        [id(0x00000004), helpcontext(0x0003fb8d)]
        HRESULT ApplyPolicy([in] BSTR FileName);
        [id(0x00000005), propget, helpcontext(0x0003fb8e)]
        HRESULT Parent([out, retval] IDispatch** ppidisp);
        [id(0x00000006), helpcontext(0x0003fb8f)]
        HRESULT RemoveAll();
        [id(0x00000007), propget, helpcontext(0x0003fb90)]
        HRESULT Enabled([out, retval] VARIANT_BOOL* Enabled);
        [id(0x00000007), propput, helpcontext(0x0003fb90)]
        HRESULT Enabled([in] VARIANT_BOOL Enabled);
        [id(0x00000008), propget, helpcontext(0x0003fb91)]
        HRESULT RequestPermissionURL([out, retval] BSTR* Contact);
        [id(0x00000008), propput, helpcontext(0x0003fb91)]
        HRESULT RequestPermissionURL([in] BSTR Contact);
        [id(0x00000009), propget, helpcontext(0x0003fb92)]
        HRESULT PolicyName([out, retval] BSTR* PolicyName);
        [id(0x0000000a), propget, helpcontext(0x0003fb93)]
        HRESULT PolicyDescription([out, retval] BSTR* PolicyDescription);
        [id(0x0000000b), propget, helpcontext(0x0003fb94)]
        HRESULT StoreLicenses([out, retval] VARIANT_BOOL* Enabled);
        [id(0x0000000b), propput, helpcontext(0x0003fb94)]
        HRESULT StoreLicenses([in] VARIANT_BOOL Enabled);
        [id(0x0000000c), propget, helpcontext(0x0003fb95)]
        HRESULT DocumentAuthor([out, retval] BSTR* Author);
        [id(0x0000000c), propput, helpcontext(0x0003fb95)]
        HRESULT DocumentAuthor([in] BSTR Author);
        [id(0x0000000d), propget, helpcontext(0x0003fb96)]
        HRESULT PermissionFromPolicy([out, retval] VARIANT_BOOL* FromPolicy);
        [id(0xfffffffc), propget]
        HRESULT _NewEnum([out, retval] IUnknown** ppunkEnum);
    };
};

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Software Developer Dotric Pty Ltd
Australia Australia
Doug graduated from Deakin University Geelong, Victoria, Australia with a Bachelor of Engineering.

Early in his career, Doug worked on an automated system for testing telephone lines. This system used a network of DEC PDP11s. The software was written in Oregon Pascal with an event driven structure. This early involvement in event driven structures proved to be an invaluable stepping stone into Windows programming some years latter.

Doug completed a Graduate Diploma in Education at La Trobe University to become a qualified secondary school Mathematics and Physics teacher. Subsequent IT contracts were with universities. One such contract was to add functionality to MSN Messenger.

In recent times Doug has been working on database and Android applications.

Comments and Discussions