[!crlf] [ object, uuid([!InterfaceGUID]), [!if=(Dual, "TRUE")] dual,[!endif] helpstring("[!InterfaceName] Interface"), pointer_default(unique) ] interface [!InterfaceName] : [!if=(Dual, "TRUE")]IDispatch[!else]IUnknown[!endif] { [!if=(SP_AUTOSIZE, "TRUE")] [propput, id(DISPID_AUTOSIZE)] HRESULT AutoSize([in]VARIANT_BOOL vbool); [propget, id(DISPID_AUTOSIZE)] HRESULT AutoSize([out,retval]VARIANT_BOOL* pbool); [!endif] [!if=(SP_BACKCOLOR, "TRUE")] [propput, id(DISPID_BACKCOLOR)] HRESULT BackColor([in]OLE_COLOR clr); [propget, id(DISPID_BACKCOLOR)] HRESULT BackColor([out,retval]OLE_COLOR* pclr); [!endif] [!if=(SP_BACKSTYLE, "TRUE")] [propput, id(DISPID_BACKSTYLE)] HRESULT BackStyle([in]long style); [propget, id(DISPID_BACKSTYLE)] HRESULT BackStyle([out,retval]long* pstyle); [!endif] [!if=(SP_BORDERCOLOR, "TRUE")] [propput, id(DISPID_BORDERCOLOR)] HRESULT BorderColor([in]OLE_COLOR clr); [propget, id(DISPID_BORDERCOLOR)] HRESULT BorderColor([out, retval]OLE_COLOR* pclr); [!endif] [!if=(SP_BORDERSTYLE, "TRUE")] [propput, id(DISPID_BORDERSTYLE)] HRESULT BorderStyle([in]long style); [propget, id(DISPID_BORDERSTYLE)] HRESULT BorderStyle([out, retval]long* pstyle); [!endif] [!if=(SP_BORDERWIDTH, "TRUE")] [propput, id(DISPID_BORDERWIDTH)] HRESULT BorderWidth([in]long width); [propget, id(DISPID_BORDERWIDTH)] HRESULT BorderWidth([out, retval]long* width); [!endif] [!if=(SP_DRAWMODE, "TRUE")] [propput, id(DISPID_DRAWMODE)] HRESULT DrawMode([in]long mode); [propget, id(DISPID_DRAWMODE)] HRESULT DrawMode([out, retval]long* pmode); [!endif] [!if=(SP_DRAWSTYLE, "TRUE")] [propput, id(DISPID_DRAWSTYLE)] HRESULT DrawStyle([in]long style); [propget, id(DISPID_DRAWSTYLE)] HRESULT DrawStyle([out, retval]long* pstyle); [!endif] [!if=(SP_DRAWWIDTH, "TRUE")] [propput, id(DISPID_DRAWWIDTH)] HRESULT DrawWidth([in]long width); [propget, id(DISPID_DRAWWIDTH)] HRESULT DrawWidth([out, retval]long* pwidth); [!endif] [!if=(SP_FILLCOLOR, "TRUE")] [propput, id(DISPID_FILLCOLOR)] HRESULT FillColor([in]OLE_COLOR clr); [propget, id(DISPID_FILLCOLOR)] HRESULT FillColor([out, retval]OLE_COLOR* pclr); [!endif] [!if=(SP_FILLSTYLE, "TRUE")] [propput, id(DISPID_FILLSTYLE)] HRESULT FillStyle([in]long style); [propget, id(DISPID_FILLSTYLE)] HRESULT FillStyle([out, retval]long* pstyle); [!endif] [!if=(SP_FONT, "TRUE")] [propputref, id(DISPID_FONT)] HRESULT Font([in]IFontDisp* pFont); [propput, id(DISPID_FONT)] HRESULT Font([in]IFontDisp* pFont); [propget, id(DISPID_FONT)] HRESULT Font([out, retval]IFontDisp** ppFont); [!endif] [!if=(SP_FORECOLOR, "TRUE")] [propput, id(DISPID_FORECOLOR)] HRESULT ForeColor([in]OLE_COLOR clr); [propget, id(DISPID_FORECOLOR)] HRESULT ForeColor([out,retval]OLE_COLOR* pclr); [!endif] [!if=(SP_ENABLED, "TRUE")] [propput, id(DISPID_ENABLED)] HRESULT Enabled([in]VARIANT_BOOL vbool); [propget, id(DISPID_ENABLED)] HRESULT Enabled([out,retval]VARIANT_BOOL* pbool); [!endif] [!if=(SP_HWND, "TRUE")] [propget, id(DISPID_HWND)] HRESULT Window([out, retval]long* phwnd); [!endif] [!if=(SP_TABSTOP, "TRUE")] [propput, id(DISPID_TABSTOP)] HRESULT TabStop([in]VARIANT_BOOL vbool); [propget, id(DISPID_TABSTOP)] HRESULT TabStop([out, retval]VARIANT_BOOL* pbool); [!endif] [!if=(SP_TEXT, "TRUE")] [propput, id(DISPID_TEXT)] HRESULT Text([in]BSTR strText); [propget, id(DISPID_TEXT)] HRESULT Text([out, retval]BSTR* pstrText); [!endif] [!if=(SP_CAPTION, "TRUE")] [propput, id(DISPID_CAPTION)] HRESULT Caption([in]BSTR strCaption); [propget, id(DISPID_CAPTION)] HRESULT Caption([out,retval]BSTR* pstrCaption); [!endif] [!if=(SP_BORDERVISIBLE, "TRUE")] [propput, id(DISPID_BORDERVISIBLE)] HRESULT BorderVisible([in]VARIANT_BOOL vbool); [propget, id(DISPID_BORDERVISIBLE)] HRESULT BorderVisible([out, retval]VARIANT_BOOL* pbool); [!endif] [!if=(SP_APPEARANCE, "TRUE")] [propput, id(DISPID_APPEARANCE)] HRESULT Appearance([in]short appearance); [propget, id(DISPID_APPEARANCE)] HRESULT Appearance([out, retval]short* pappearance); [!endif] [!if=(SP_MOUSEPOINTER, "TRUE")] [propput, id(DISPID_MOUSEPOINTER)] HRESULT MousePointer([in]long pointer); [propget, id(DISPID_MOUSEPOINTER)] HRESULT MousePointer([out, retval]long* ppointer); [!endif] [!if=(SP_MOUSEICON, "TRUE")] [propputref, id(DISPID_MOUSEICON)] HRESULT MouseIcon([in]IPictureDisp* pMouseIcon); [propput, id(DISPID_MOUSEICON)] HRESULT MouseIcon([in]IPictureDisp* pMouseIcon); [propget, id(DISPID_MOUSEICON)] HRESULT MouseIcon([out, retval]IPictureDisp** ppMouseIcon); [!endif] [!if=(SP_PICTURE, "TRUE")] [propputref, id(DISPID_PICTURE)] HRESULT Picture([in]IPictureDisp* pPicture); [propput, id(DISPID_PICTURE)] HRESULT Picture([in]IPictureDisp* pPicture); [propget, id(DISPID_PICTURE)] HRESULT Picture([out, retval]IPictureDisp** ppPicture); [!endif] [!if=(SP_VALID, "TRUE")] [propput, id(DISPID_VALID)] HRESULT Valid([in]VARIANT_BOOL vbool); [propget, id(DISPID_VALID)] HRESULT Valid([out, retval]VARIANT_BOOL* pbool); [!endif] [!if=(SP_READYSTATE, "TRUE")] [propput, id(DISPID_READYSTATE)] HRESULT ReadyState([in]long state); [propget, id(DISPID_READYSTATE)] HRESULT ReadyState([out, retval]long* pstate); [!endif] }; [!if=(HTMLControl, "TRUE")] [!crlf] [!newguid(InterfaceGUIDUI)] [ object, dual, uuid([!InterfaceGUIDUI]), helpstring("[!InterfaceName]UI Interface"), pointer_default(unique) ] interface [!InterfaceName]UI : IDispatch { // Example method that will be called by the HTML HRESULT OnClick([in]IDispatch* pdispBody, [in]VARIANT varColor); }; [!endif]