Click here to Skip to main content
15,860,859 members
Articles / Desktop Programming / WTL

Form Designer

26 Jul 2021CPOL24 min read 349.7K   82.5K   230  
Component for adding scriptable forms capabilities to an application.
// DDForms.idl : IDL source for DDForms.dll
//
// Author : David Shepherd
//			Copyright (c) 2002, DaeDoe-Software
//
/////////////////////////////////////////////////////////////////////////////

// This file will be processed by the MIDL tool to
// produce the type library (DDForms.tlb) and marshalling code.

import "atliface.idl";
import "oaidl.idl";
import "ocidl.idl";

#include "olectl.h"

// type library version
// this value must match the value in the library block
const short TlbVerMaj=1;
const short TlbVerMin=1;

// custom property dispatch id's
const int DISPID_CUSTOM				= 1000;
// form width and height
const int DISPID_FORMWIDTH			= DISPID_CUSTOM + 0;
const int DISPID_FORMHEIGHT			= DISPID_CUSTOM + 1;
// form background and foreground colors
const int DISPID_FORMBACKCOLOR		= DISPID_CUSTOM + 2;
const int DISPID_FORMFORECOLOR		= DISPID_CUSTOM + 3;
// grid width and height
const int DISPID_GRIDWIDTH			= DISPID_CUSTOM + 4;
const int DISPID_GRIDHEIGHT			= DISPID_CUSTOM + 5;
// grid visible
const int DISPID_GRIDVISIBLE		= DISPID_CUSTOM + 6;
// drag frame background and foreground colors
const int DISPID_DRAGFRAMEBACKCOLOR	= DISPID_CUSTOM + 7;
const int DISPID_DRAGFRAMEFORECOLOR	= DISPID_CUSTOM + 8;
// tab number background and foreground colors
const int DISPID_TABNUMBERBACKCOLOR	= DISPID_CUSTOM + 9;
const int DISPID_TABNUMBERFORECOLOR	= DISPID_CUSTOM + 10;

// forwards
interface IScript;
interface IScript2;
interface IScriptBuffer;
interface IScriptNavigation;
interface IScriptState;
interface ISimpleScriptEditor;
interface IFormEditor;
interface IFormEditor2;
interface IFormEditorItemCollection;
interface IFormEditorItemDetails;
interface IFormPropertiesAccessor;
interface IFormViewer;
interface IFormViewer2;
interface IFormViewerItemCollection;
interface IFormViewerItemDetails;
interface IViewableForm;

// to prevent name collisions occurring in visual studio generated
// wrappers the name pDispatch should not be used for any parameters
#define pDispatch pDisp
#define ppDispatch ppDisp
// for consistancy pUnknown will be made to work the same
#define pUnknown pUnk
#define ppUnknown ppUnk
// todo : work around this problem correctly

	[
		object,
		hidden,
		uuid(204D5C41-11B2-11D6-B6A6-87D258186545),
		dual,
		helpstring("IScript Interface"),
		pointer_default(unique)
	]
	interface IScript : IDispatch
	{
		[id(1), helpstring("Adds an event handler to the script")] HRESULT AddEventHandler([in] BSTR Source, [in] BSTR Event, [in] BSTR Parameters);
		[id(2), helpstring("Determines if an event handler exists in the script")] HRESULT IsEventHandled([in] BSTR Source, [in] BSTR Event, [out, retval] VARIANT_BOOL *pRet);
		[id(3), hidden, helpstring("")] HRESULT EditEventHandler([in] BSTR Source, [in] BSTR Event);
		[id(4), hidden, helpstring("")] HRESULT EditLine([in] long Line);
		[id(5), hidden, helpstring("")] HRESULT Reset();
		[id(6), hidden, helpstring("")] HRESULT LoadFromStream([in] IUnknown *pUnknown, [in] long StreamVersion);
		[id(7), hidden, helpstring("")] HRESULT SaveToStream([in] IUnknown *pUnknown);
		[propget, id(8), helpstring("Returns/sets the script text")] HRESULT Text([out, retval] BSTR *pVal);
		[propput, id(8), helpstring("Returns/sets the script text")] HRESULT Text([in] BSTR newVal);
		[propget, id(9), helpstring("Returns/sets the editor object used to edit the script")] HRESULT Editor([out, retval] IUnknown **ppUnknown);
		[propput, id(9), helpstring("Returns/sets the editor object used to edit the script")] HRESULT Editor([in] IUnknown *pUnknown);
	};
	[
		object,
		uuid(851434DE-F6B8-4e8a-9EFC-B74A652171A6),
		dual,
		helpstring("IScript2 Interface"),
		pointer_default(unique)
	]
	interface IScript2 : IScript
	{
		[id(10), helpstring("Adds an event handler to the script using the specified event handler body")] HRESULT AddEventHandlerEx([in] BSTR Source, [in] BSTR Event, [in] BSTR Parameters, [in] BSTR Body);
	};
	[
		object,
		hidden,
		uuid(75613A61-11B4-11d6-B6A6-87D258186545),
		helpstring("IScriptBuffer Interface"),
		pointer_default(unique)
	]
	interface IScriptBuffer : IUnknown
	{
		[helpstring("")] HRESULT LockExternal([in] BOOL Lock);
		[helpstring("")] HRESULT GetLineCount([out] DWORD *pCount);
		[helpstring("")] HRESULT FindText([in] DWORD Start, [in] LPCOLESTR pText, [out] BOOL *pFound, [out] DWORD *pLine);
		[helpstring("")] HRESULT InsertLines([in] DWORD Start, [in] DWORD Count, [in, size_is(Count)] LPCOLESTR *pLines);
		[helpstring("")] HRESULT GetLines([in] DWORD Start, [in] DWORD Count, [out, size_is(,Count)] LPOLESTR **ppLines);
		[helpstring("")] HRESULT DeleteLines([in] DWORD Start, [in] DWORD Count);
		[helpstring("")] HRESULT ModifyLines([in] DWORD Start, [in] DWORD End, [in] DWORD Count, [in, size_is(Count)] LPCOLESTR *pLines);
	};
	[
		object,
		hidden,
		uuid(8CEAEC81-11B4-11d6-B6A6-87D258186545),
		helpstring("IScriptNavigation Interface"),
		pointer_default(unique)
	]
	interface IScriptNavigation : IUnknown
	{
		[helpstring("")] HRESULT GoToLine([in] DWORD Line);
	};
	[
		object,
		hidden,
		uuid(14435001-5080-11d6-BCED-CECCB352E944),
		helpstring("IScriptState Interface"),
		pointer_default(unique)
	]
	interface IScriptState : IUnknown
	{
	};
	[
		object,
		uuid(3DCFDE21-143A-11D6-B6A6-AC960FFC5345),
		dual,
		helpstring("ISimpleScriptEditor Interface"),
		pointer_default(unique)
	]
	interface ISimpleScriptEditor : IDispatch
	{
		[id(DISPID_ABOUTBOX), helpstring("Shows the about box")] HRESULT About();
		[id(1), helpstring("Cuts the selection to the clipboard")] HRESULT Cut();
		[id(2), helpstring("Copies the selection to the clipboard")] HRESULT Copy();
		[id(3), helpstring("Pastes the contents of the clipboard into the editor")] HRESULT Paste();
		[id(4), helpstring("Undoes the last change")] HRESULT Undo();
		[id(5), helpstring("Forces a modified state changed event to be fired")] HRESULT RefreshModifiedState();
		[propget, id(6), nonbrowsable, helpstring("Returns/sets the modified flag")] HRESULT Modified([out, retval] VARIANT_BOOL *pVal);
		[propput, id(6), nonbrowsable, helpstring("Returns/sets the modified flag")] HRESULT Modified([in] VARIANT_BOOL newVal);
		[propput, bindable, id(DISPID_BORDERVISIBLE), helpstring("Returns/sets the border visibility")] HRESULT BorderVisible([in] VARIANT_BOOL newVal);
		[propget, bindable, id(DISPID_BORDERVISIBLE), helpstring("Returns/sets the border visibility")] HRESULT BorderVisible([out, retval] VARIANT_BOOL *pVal);
		[propput, bindable, id(DISPID_BACKCOLOR), helpstring("Returns/sets the background color")] HRESULT BackColor([in] OLE_COLOR newVal);
		[propget, bindable, id(DISPID_BACKCOLOR), helpstring("Returns/sets the background color")] HRESULT BackColor([out, retval] OLE_COLOR *pVal);
		[propput, bindable, id(DISPID_FORECOLOR), helpstring("Returns/sets the foreground color")] HRESULT ForeColor([in] OLE_COLOR newVal);
		[propget, bindable, id(DISPID_FORECOLOR), helpstring("Returns/sets the foreground color")] HRESULT ForeColor([out, retval] OLE_COLOR *pVal);
	midl_pragma warning(disable:2039)
		[propputref, bindable, id(DISPID_FONT), helpstring("Returns/sets the font")] HRESULT Font([in] IFontDisp *pFontDisp);
		[propput, bindable, id(DISPID_FONT), helpstring("Returns/sets the font")] HRESULT Font([in] IFontDisp *pFontDisp);
		[propget, bindable, id(DISPID_FONT), helpstring("Returns/sets the font")] HRESULT Font([out, retval] IFontDisp **ppFontDisp);
	midl_pragma warning(default:2039)
	};
	[
		object,
		hidden,
		uuid(E78FC0E5-1C8E-11D6-B6A6-B864D14CD046),
		dual,
		helpstring("IFormEditor Interface"),
		pointer_default(unique)
	]
	interface IFormEditor : IDispatch
	{
		[id(DISPID_ABOUTBOX), helpstring("Shows the about box")] HRESULT About();
		[id(1), helpstring("Selects all items")] HRESULT SelectAll();
		[id(2), helpstring("Unselects all items")] HRESULT SelectNone();
		[id(3), helpstring("Creates a new form using default attributes")] HRESULT New();
		[id(4), helpstring("Creates a new form using specified attributes")] HRESULT NewEx([in] long Width, [in] long Height, [in] OLE_COLOR BackColor, [in] OLE_COLOR ForeColor);
		[id(5), helpstring("Displays the insert item dialog")] HRESULT ShowInsertDialog([out, retval] BSTR *pProgID);
		[id(6), helpstring("Inserts an item using default attributes")] HRESULT Insert([in] BSTR ProgID, [out, retval] IDispatch **ppDispatch);
		[id(7), helpstring("Inserts an item using specified attributes")] HRESULT InsertEx([in] BSTR ProgID, [in] long Left, [in] long Top, [in] long Width, [in] long Height, [out, retval] IDispatch **ppDispatch);
		[id(8), helpstring("Deletes selected items")] HRESULT Delete();
		[id(9), helpstring("Cuts selected items to the clipboard")] HRESULT Cut();
		[id(10), helpstring("Copies selected items to the clipboard")] HRESULT Copy();
		[id(11), helpstring("Pastes items from the clipboard into the form")] HRESULT Paste();
		[id(12), helpstring("Undoes the last change")] HRESULT Undo();
		[id(13), helpstring("Redoes the last undo")] HRESULT Redo();
		[id(14), helpstring("Switches the editor into tab ordering mode")] HRESULT SetTabOrder();
		[id(15), helpstring("Forces a state changed event to be fired")] HRESULT RefreshState();
		[id(16), helpstring("Loads a previously saved form from file")] HRESULT LoadFromFile([in] BSTR FileName);
		[id(17), helpstring("Saves the current form to file")] HRESULT SaveToFile([in] BSTR FileName);
		[id(18), helpstring("Checks the script for errors")] HRESULT ValidateScript([out, retval] VARIANT_BOOL *pRet);
		[id(19), helpstring("Moves selected items left by a single pixel")] HRESULT MoveLeft();
		[id(20), helpstring("Moves selected items right by a single pixel")] HRESULT MoveRight();
		[id(21), helpstring("Moves selected items up by a single pixel")] HRESULT MoveUp();
		[id(22), helpstring("Moves selected items down by a single pixel")] HRESULT MoveDown();
		[id(23), helpstring("Aligns selected items to the left most")] HRESULT AlignLeft();
		[id(24), helpstring("Aligns selected items to the right most")] HRESULT AlignRight();
		[id(25), helpstring("Aligns selected items to the top most")] HRESULT AlignTop();
		[id(26), helpstring("Aligns selected items to the bottom most")] HRESULT AlignBottom();
		[id(27), helpstring("Aligns selected items to the form horizontal center")] HRESULT FormAlignHCenter();
		[id(28), helpstring("Aligns selected items to the form vertical center")] HRESULT FormAlignVCenter();
		[id(29), helpstring("Aligns selected items to the form horizontal and vertical center")] HRESULT FormAlignBoth();
		[id(30), helpstring("Sizes the width of selected items to match the largest")] HRESULT SizeWidthToLargest();
		[id(31), helpstring("Sizes the height of selected items to match the largest")] HRESULT SizeHeightToLargest();
		[id(32), helpstring("Sizes the width and height of selected items to match the largest")] HRESULT SizeToLargest();
		[id(33), helpstring("Sizes the width of selected items to match the smallest")] HRESULT SizeWidthToSmallest();
		[id(34), helpstring("Sizes the height of selected items to match the smallest")] HRESULT SizeHeightToSmallest();
		[id(35), helpstring("Sizes the width and height of selected items to match the smallest")] HRESULT SizeToSmallest();
		[id(36), helpstring("Spaces selected items horizontally")] HRESULT SpaceHorizontally();
		[id(37), helpstring("Spaces selected items vertically")] HRESULT SpaceVertically();
		[id(38), helpstring("Shows property pages for the current selection")] HRESULT Properties();
		[id(39), helpstring("Exposes a named object")] HRESULT Expose([in] BSTR Name, [in] IDispatch *pDispatch);
		[id(40), helpstring("Unlocks the form editor")] HRESULT DDUnlock([in] long Data1_High, [in] long Data1_Low, [in] long Data2_High, [in] long Data2_Low);
		[propget, id(41), helpstring("Returns the script object")] HRESULT Script([out, retval] IScript2 **ppScript2);
		[propget, bindable, id(DISPID_BORDERVISIBLE), helpstring("Returns/sets the border visibility")] HRESULT BorderVisible([out, retval] VARIANT_BOOL *pVal);
		[propput, bindable, id(DISPID_BORDERVISIBLE), helpstring("Returns/sets the border visibility")] HRESULT BorderVisible([in] VARIANT_BOOL newVal);
		[propget, bindable, id(DISPID_BACKCOLOR), helpstring("Returns/sets the background color")] HRESULT BackColor([out, retval] OLE_COLOR *pVal);
		[propput, bindable, id(DISPID_BACKCOLOR), helpstring("Returns/sets the background color")] HRESULT BackColor([in] OLE_COLOR newVal);
		[propget, bindable, id(DISPID_FORMWIDTH), helpstring("Returns/sets the form width")] HRESULT FormWidth([out, retval] long *pVal);
		[propput, bindable, id(DISPID_FORMWIDTH), helpstring("Returns/sets the form width")] HRESULT FormWidth([in] long newVal);
		[propget, bindable, id(DISPID_FORMHEIGHT), helpstring("Returns/sets the form height")] HRESULT FormHeight([out, retval] long *pVal);
		[propput, bindable, id(DISPID_FORMHEIGHT), helpstring("Returns/sets the form height")] HRESULT FormHeight([in] long newVal);
		[propget, bindable, id(DISPID_FORMBACKCOLOR), helpstring("Returns/sets the form background color")] HRESULT FormBackColor([out, retval] OLE_COLOR *pVal);
		[propput, bindable, id(DISPID_FORMBACKCOLOR), helpstring("Returns/sets the form background color")] HRESULT FormBackColor([in] OLE_COLOR newVal);
		[propget, bindable, id(DISPID_FORMFORECOLOR), helpstring("Returns/sets the form foreground color")] HRESULT FormForeColor([out, retval] OLE_COLOR *pVal);
		[propput, bindable, id(DISPID_FORMFORECOLOR), helpstring("Returns/sets the form foreground color")] HRESULT FormForeColor([in] OLE_COLOR newVal);
		[propget, bindable, id(DISPID_GRIDWIDTH), helpstring("Returns/sets the grid width")] HRESULT GridWidth([out, retval] long *pVal);
		[propput, bindable, id(DISPID_GRIDWIDTH), helpstring("Returns/sets the grid width")] HRESULT GridWidth([in] long newVal);
		[propget, bindable, id(DISPID_GRIDHEIGHT), helpstring("Returns/sets the grid height")] HRESULT GridHeight([out, retval] long *pVal);
		[propput, bindable, id(DISPID_GRIDHEIGHT), helpstring("Returns/sets the grid height")] HRESULT GridHeight([in] long newVal);
		[propget, bindable, id(DISPID_GRIDVISIBLE), helpstring("Returns/sets the grid visibility")] HRESULT GridVisible([out, retval] VARIANT_BOOL *pVal);
		[propput, bindable, id(DISPID_GRIDVISIBLE), helpstring("Returns/sets the grid visibility")] HRESULT GridVisible([in] VARIANT_BOOL newVal);
		[propget, bindable, id(DISPID_DRAGFRAMEBACKCOLOR), helpstring("Returns/sets the drag frame background color")] HRESULT DragFrameBackColor([out, retval] OLE_COLOR *pVal);
		[propput, bindable, id(DISPID_DRAGFRAMEBACKCOLOR), helpstring("Returns/sets the drag frame background color")] HRESULT DragFrameBackColor([in] OLE_COLOR newVal);
		[propget, bindable, id(DISPID_DRAGFRAMEFORECOLOR), helpstring("Returns/sets the drag frame foreground color")] HRESULT DragFrameForeColor([out, retval] OLE_COLOR *pVal);
		[propput, bindable, id(DISPID_DRAGFRAMEFORECOLOR), helpstring("Returns/sets the drag frame foreground color")] HRESULT DragFrameForeColor([in] OLE_COLOR newVal);
		[propget, bindable, id(DISPID_TABNUMBERBACKCOLOR), helpstring("Returns/sets the tab number background color")] HRESULT TabNumberBackColor([out, retval] OLE_COLOR *pVal);
		[propput, bindable, id(DISPID_TABNUMBERBACKCOLOR), helpstring("Returns/sets the tab number background color")] HRESULT TabNumberBackColor([in] OLE_COLOR newVal);
		[propget, bindable, id(DISPID_TABNUMBERFORECOLOR), helpstring("Returns/sets the tab number foreground color")] HRESULT TabNumberForeColor([out, retval] OLE_COLOR *pVal);
		[propput, bindable, id(DISPID_TABNUMBERFORECOLOR), helpstring("Returns/sets the tab number foreground color")] HRESULT TabNumberForeColor([in] OLE_COLOR newVal);
	};
	[
		object,
		uuid(C64F393D-B769-4cc3-8EE7-B1AA6720EE42),
		dual,
		helpstring("IFormEditor2 Interface"),
		pointer_default(unique)
	]
	interface IFormEditor2 : IFormEditor
	{
		[id(42), helpstring("Sends selected items to the back of all other items")] HRESULT SendToBack();
		[id(43), helpstring("Brings selected items to the front of all other items")] HRESULT BringToFront();
		[id(44), helpstring("Returns details for the specified item")] HRESULT GetItemDetails([in] IDispatch *pDispatch, [out, retval] IFormEditorItemDetails **ppFormEditorItemDetails);
		[id(45), hidden, helpstring("")] HRESULT GetItemClassId([in] IDispatch *pDispatch, [out, retval] BSTR *pClassId);
		[id(46), hidden, helpstring("")] HRESULT GetItemName([in] IDispatch *pDispatch, [out, retval] BSTR *pName);
		[id(47), hidden, helpstring("")] HRESULT SetItemName([in] IDispatch *pDispatch, [in] BSTR Name);
		[id(48), hidden, helpstring("")] HRESULT GetItemTag([in] IDispatch *pDispatch, [out, retval] BSTR *pTag);
		[id(49), hidden, helpstring("")] HRESULT SetItemTag([in] IDispatch *pDispatch, [in] BSTR Tag);
		[id(50), helpstring("Returns the position and size of the specified item")] HRESULT GetItemPosition([in] IDispatch *pDispatch, [out] long *pLeft, [out] long *pTop, [out] long *pWidth, [out] long *pHeight, [out] long *pTabNumber);
		[id(51), helpstring("Sets the position and size of the specified item")] HRESULT SetItemPosition([in] IDispatch *pDispatch, [in] long Left, [in] long Top, [in] long Width, [in] long Height, [in] long TabNumber);
		[id(52), hidden, helpstring("")] HRESULT IsItemSelected([in] IDispatch *pDispatch, [out, retval] VARIANT_BOOL *pIsSelected);
		[id(53), hidden, helpstring("")] HRESULT SelectItem([in] IDispatch *pDispatch, [in] VARIANT_BOOL KeepCurrentSelection);
		[id(54), hidden, helpstring("")] HRESULT UnselectItem([in] IDispatch *pDispatch);
		[id(55), hidden, helpstring("")] HRESULT IsItemDeleted([in] IDispatch *pDispatch, [out, retval] VARIANT_BOOL *pIsDeleted);
		[propget, id(56), nonbrowsable, helpstring("Returns the item collection")] HRESULT Items([out, retval] IFormEditorItemCollection **ppFormEditorItemCollection);
		[propget, id(57), nonbrowsable, helpstring("Returns the selected item collection")] HRESULT SelectedItems([out, retval] IFormEditorItemCollection **ppFormEditorItemCollection);
	};
	[
		object,
		uuid(715700FA-492D-4801-874D-9D0BEB9C54B8),
		dual,
		nonextensible,
		helpstring("IFormEditorItemCollection Interface"),
		pointer_default(unique)
	]
	interface IFormEditorItemCollection : IDispatch
	{
		[propget, id(DISPID_VALUE), helpstring("Returns an item in the collection")] HRESULT Item([in] long Index, [out, retval] IDispatch **ppDispatch);
		[propget, id(DISPID_NEWENUM), helpstring("")] HRESULT _NewEnum([out, retval] IUnknown **ppUnknown);
		[propget, id(1), helpstring("Returns the number of items in the collection")] HRESULT Count([out, retval] long *pVal);
	};
	[
		object,
		uuid(2623F94C-D420-4C96-8AA6-092AD8CD3FDA),
		dual,
		nonextensible,
		helpstring("IFormEditorItemDetails Interface"),
		pointer_default(unique)
	]
	interface IFormEditorItemDetails : IDispatch
	{
		[propget, id(1), helpstring("Returns the item")] HRESULT Item([out, retval] IDispatch **ppDispatch);
		[propget, id(2), helpstring("Returns the item class identifier")] HRESULT ClassId([out, retval] BSTR *pVal);
		[propget, id(3), helpstring("Returns/sets the item name")] HRESULT Name([out, retval] BSTR *pVal);
		[propput, id(3), helpstring("Returns/sets the item name")] HRESULT Name([in] BSTR newVal);
		[propget, id(4), helpstring("Returns/sets the item tag")] HRESULT Tag([out, retval] BSTR *pVal);
		[propput, id(4), helpstring("Returns/sets the item tag")] HRESULT Tag([in] BSTR newVal);
		[propget, id(5), helpstring("Returns/sets the item left position")] HRESULT Left([out, retval] long *pVal);
		[propput, id(5), helpstring("Returns/sets the item left position")] HRESULT Left([in] long newVal);
		[propget, id(6), helpstring("Returns/sets the item top position")] HRESULT Top([out, retval] long *pVal);
		[propput, id(6), helpstring("Returns/sets the item top position")] HRESULT Top([in] long newVal);
		[propget, id(7), helpstring("Returns/sets the item width")] HRESULT Width([out, retval] long *pVal);
		[propput, id(7), helpstring("Returns/sets the item width")] HRESULT Width([in] long newVal);
		[propget, id(8), helpstring("Returns/sets the item height")] HRESULT Height([out, retval] long *pVal);
		[propput, id(8), helpstring("Returns/sets the item height")] HRESULT Height([in] long newVal);
		[propget, id(9), helpstring("Returns/sets whether the item is selected")] HRESULT Selected([out, retval] VARIANT_BOOL *pVal);
		[propput, id(9), helpstring("Returns/sets whether the item is selected")] HRESULT Selected([in] VARIANT_BOOL newVal);
		[propget, id(10), helpstring("Returns whether the item is deleted")] HRESULT Deleted([out, retval] VARIANT_BOOL *pVal);
		[propget, id(11), helpstring("Returns/sets the item tab number")] HRESULT TabNumber([out, retval] long *pVal);
		[propput, id(11), helpstring("Returns/sets the item tab number")] HRESULT TabNumber([in] long newVal);
	};
	[
		object,
		hidden,
		uuid(6FCC9841-7E49-11D6-97A6-444553540000),
		dual,
		helpstring("IFormPropertiesAccessor Interface"),
		pointer_default(unique)
	]
	interface IFormPropertiesAccessor : IDispatch
	{
		[propput, id(1), helpstring("")] HRESULT FormEditor([in] IFormEditor *pFormEditor);
		[propget, bindable, id(DISPID_BACKCOLOR), helpstring("")] HRESULT BackColor([out, retval] OLE_COLOR *pVal);
		[propput, bindable, id(DISPID_BACKCOLOR), helpstring("")] HRESULT BackColor([in] OLE_COLOR newVal);
		[propget, bindable, id(DISPID_FORECOLOR), helpstring("")] HRESULT ForeColor([out, retval] OLE_COLOR *pVal);
		[propput, bindable, id(DISPID_FORECOLOR), helpstring("")] HRESULT ForeColor([in] OLE_COLOR newVal);
	};
	[
		object,
		hidden,
		uuid(E78FC0E7-1C8E-11D6-B6A6-B864D14CD046),
		dual,
		helpstring("IFormViewer Interface"),
		pointer_default(unique)
	]
	interface IFormViewer : IDispatch
	{
		[id(DISPID_ABOUTBOX), helpstring("Shows the about box")] HRESULT About();
		[id(1), helpstring("Loads a previously saved form from file")] HRESULT LoadFromFile([in] BSTR FileName);
		[id(2), helpstring("Unloads the current form")] HRESULT Unload();
		[id(3), helpstring("Exposes a named object")] HRESULT Expose([in] BSTR Name, [in] IDispatch *pDispatch);
		[propget, id(4), helpstring("Returns the form object")] HRESULT Form([out, retval] IViewableForm **ppViewableForm);
		[propget, bindable, id(DISPID_BORDERVISIBLE), helpstring("Returns/sets the border visibility")] HRESULT BorderVisible([out, retval] VARIANT_BOOL *pVal);
		[propput, bindable, id(DISPID_BORDERVISIBLE), helpstring("Returns/sets the border visibility")] HRESULT BorderVisible([in] VARIANT_BOOL newVal);
		[propget, bindable, id(DISPID_BACKCOLOR), helpstring("Returns/sets the background color")] HRESULT BackColor([out, retval] OLE_COLOR *pVal);
		[propput, bindable, id(DISPID_BACKCOLOR), helpstring("Returns/sets the background color")] HRESULT BackColor([in] OLE_COLOR newVal);
	};
	[
		object,
		uuid(7D44EA5F-390E-49c8-A985-670FF9E7CC7C),
		dual,
		helpstring("IFormViewer2 Interface"),
		pointer_default(unique)
	]
	interface IFormViewer2 : IFormViewer
	{
		[id(5), helpstring("Returns details for the specified item")] HRESULT GetItemDetails([in] IDispatch *pDispatch, [out, retval] IFormViewerItemDetails **ppFormViewerItemDetails);
		[id(6), hidden, helpstring("")] HRESULT GetItemClassId([in] IDispatch *pDispatch, [out, retval] BSTR *pClassId);
		[id(7), hidden, helpstring("")] HRESULT GetItemName([in] IDispatch *pDispatch, [out, retval] BSTR *pName);
		[id(8), hidden, helpstring("")] HRESULT GetItemTag([in] IDispatch *pDispatch, [out, retval] BSTR *pTag);
		[id(9), hidden, helpstring("")] HRESULT GetItemPosition([in] IDispatch *pDispatch, [out] long *pLeft, [out] long *pTop, [out] long *pWidth, [out] long *pHeight, [out] long *pTabNumber);
		[id(10), hidden, helpstring("")] HRESULT SetItemPosition([in] IDispatch *pDispatch, [in] long Left, [in] long Top, [in] long Width, [in] long Height, [in] long TabNumber);
		[propget, id(11), nonbrowsable, helpstring("Returns the item collection")] HRESULT Items([out, retval] IFormViewerItemCollection **ppFormViewerItemCollection);
	};
	[
		object,
		uuid(60D10E1F-6946-4ACB-8F46-B8DBC9935FCF),
		dual,
		nonextensible,
		helpstring("IFormViewerItemCollection Interface"),
		pointer_default(unique)
	]
	interface IFormViewerItemCollection : IDispatch
	{
		[propget, id(DISPID_VALUE), helpstring("Returns an item in the collection")] HRESULT Item([in] long Index, [out, retval] IDispatch **ppDispatch);
		[propget, id(DISPID_NEWENUM), helpstring("")] HRESULT _NewEnum([out, retval] IUnknown **ppUnknown);
		[propget, id(1), helpstring("Returns the number of items in the collection")] HRESULT Count([out, retval] long *pVal);
	};
	[
		object,
		uuid(FB07E6EC-322B-4C83-93E7-18C857705CCC),
		dual,
		nonextensible,
		helpstring("IFormViewerItemDetails Interface"),
		pointer_default(unique)
	]
	interface IFormViewerItemDetails : IDispatch
	{
		[propget, id(1), helpstring("Returns the item")] HRESULT Item([out, retval] IDispatch **ppDispatch);
		[propget, id(2), helpstring("Returns the item class identifier")] HRESULT ClassId([out, retval] BSTR *pVal);
		[propget, id(3), helpstring("Returns the item name")] HRESULT Name([out, retval] BSTR *pVal);
		[propget, id(4), helpstring("Returns the item tag")] HRESULT Tag([out, retval] BSTR *pVal);
		[propget, id(5), helpstring("Returns the item left position")] HRESULT Left([out, retval] long *pVal);
		[propget, id(6), helpstring("Returns the item top position")] HRESULT Top([out, retval] long *pVal);
		[propget, id(7), helpstring("Returns the item width")] HRESULT Width([out, retval] long *pVal);
		[propget, id(8), helpstring("Returns the item height")] HRESULT Height([out, retval] long *pVal);
		[propget, id(9), helpstring("Returns the item tab number")] HRESULT TabNumber([out, retval] long *pVal);
};
	[
		object,
		uuid(C7E5F861-82E4-11D6-97A6-F8D89CA85F41),
		dual,
		helpstring("IViewableForm Interface"),
		pointer_default(unique)
	]
	interface IViewableForm : IDispatch
	{
		[propget, id(1), helpstring("Returns the width")] HRESULT Width([out, retval] long *pVal);
		[propget, id(2), helpstring("Returns the height")] HRESULT Height([out, retval] long *pVal);
		[propget, id(3), helpstring("Returns the background color")] HRESULT BackColor([out, retval] OLE_COLOR *pVal);
		[propget, id(4), helpstring("Returns the foreground color")] HRESULT ForeColor([out, retval] OLE_COLOR *pVal);
	};

[
	uuid(F848E101-112B-11D6-B6A6-F0FA2EAB9C44),
	// this value must match TlbVerMaj TlbVerMin and all RGS files
	version(1.1),
	helpstring("DaeDoe Forms")
]
library DDFORMSLib
{
	importlib("stdole32.tlb");
	importlib("stdole2.tlb");

	interface IAxWinAmbientDispatchEx;

	[
		hidden,
		uuid(61B10941-507B-11d6-BCED-CECCB352E944),
		helpstring("_ISimpleScriptEditorEvents Interface")
	]
	dispinterface _ISimpleScriptEditorEvents
	{
		properties:
		methods:
		[id(1), helpstring("Indicates the modified state has changed")]
			HRESULT ModifiedStateChanged(
				[in] VARIANT_BOOL Modified);
	};
	[
		hidden,
		uuid(49BF3DA1-347B-11d6-B6A6-B8F62033BB47),
		helpstring("_IFormEditorEvents Interface")
	]
	dispinterface _IFormEditorEvents
	{
		properties:
		methods:
		[id(1), helpstring("Indicates the form editor state has changed in some way")]
			HRESULT StateChanged(
				[in] VARIANT_BOOL Busy,
				[in] VARIANT_BOOL Modified,
				[in] VARIANT_BOOL CanPaste,
				[in] VARIANT_BOOL CanUndo,
				[in] VARIANT_BOOL CanRedo,
				[in] long ItemCount,
				[in] long SelectedItemCount);
		[id(2), helpstring("Indicates that an existing event handler is ready for editing")]
			HRESULT EditExistingEventHandler();
		[id(3), helpstring("Indicates that a new event handler is ready for editing")]
			HRESULT EditNewEventHandler();
		[id(4), helpstring("Indicates that a script error is ready for editing")]
			HRESULT EditScriptError(
				[in] BSTR Source,
				[in] long Number,
				[in] BSTR Description);
	};
	[
		hidden,
		uuid(45D32C01-4827-11d6-B6A6-FFA76CE09447),
		helpstring("_IFormViewerEvents Interface")
	]
	dispinterface _IFormViewerEvents
	{
		properties:
		methods:
	};
	[
		hidden,
		uuid(4D07F5A1-4827-11d6-B6A6-FFA76CE09447),
		helpstring("_IViewableFormEvents Interface")
	]
	dispinterface _IViewableFormEvents
	{
		properties:
		methods:
		[id(1), helpstring("Indicates the form has been loaded")]
			HRESULT Load();
		[id(2), helpstring("Indicates the form is about to be unloaded")]
			HRESULT Unload();
		[id(3), helpstring("Indicates the form has received the focus")]
			HRESULT GotFocus();
		[id(4), helpstring("Indicates the form has lost the focus")]
			HRESULT LostFocus();
		[id(5), helpstring("Indicates a mouse click occurred within the form")]
			HRESULT Click();
		[id(6), helpstring("Indicates a mouse double click occurred within the form")]
			HRESULT DblClick();
		[id(7), helpstring("Indicates a mouse button has been pressed")]
			HRESULT MouseDown(
				[in] long Button,
				[in] long Shift,
				[in] long X,
				[in] long Y);
		[id(8), helpstring("Indicates a mouse button has been released")]
			HRESULT MouseUp(
				[in] long Button,
				[in] long Shift,
				[in] long X,
				[in] long Y);
		[id(9), helpstring("Indicates the mouse has moved")]
			HRESULT MouseMove(
				[in] long Button,
				[in] long Shift,
				[in] long X,
				[in] long Y);
		[id(10), helpstring("Indicates a key has been pressed")]
			HRESULT KeyDown(
				[in] long KeyCode,
				[in] long Shift);
		[id(11), helpstring("Indicates a key has been released")]
			HRESULT KeyUp(
				[in] long KeyCode,
				[in] long Shift);
		[id(12), helpstring("Indicates a character key has been pressed")]
			HRESULT KeyPress([in] long KeyAscii);
	};

	[
		noncreatable,
		uuid(204D5C42-11B2-11D6-B6A6-87D258186545),
		helpstring("Script Class")
	]
	coclass Script
	{
		[default] interface IScript2;
		interface IScript;
	};
	[
		uuid(3DCFDE22-143A-11D6-B6A6-AC960FFC5345),
		helpstring("SimpleScriptEditor Class")
	]
	coclass SimpleScriptEditor
	{
		[default] interface ISimpleScriptEditor;
		[default, source] dispinterface _ISimpleScriptEditorEvents;
		interface IScriptBuffer;
		interface IScriptNavigation;
		interface IScriptState;
	};
	[
		hidden,
		uuid(418B9BE3-1E25-11D6-B6A6-D8899F6B5045),
		helpstring("PropPageSimpleScriptEditor Class")
	]
	coclass PropPageSimpleScriptEditor
	{
		interface IUnknown;
	};
	[
		uuid(E78FC0E6-1C8E-11D6-B6A6-B864D14CD046),
		helpstring("FormEditor Class")
	]
	coclass FormEditor
	{
		[default] interface IFormEditor2;
		[default, source] dispinterface _IFormEditorEvents;
		interface IFormEditor;
	};
	[
		hidden,
		uuid(5335B201-3F80-11D6-B6A6-B4BA8B0CAC47),
		helpstring("PropPageFormEditor Class")
	]
	coclass PropPageFormEditor
	{
		interface IUnknown;
	};
	[
		noncreatable,
		uuid(52F27197-D14A-403A-AD92-8FB6FB0125E8),
		helpstring("FormEditorItemCollection Class")
	]
	coclass FormEditorItemCollection
	{
		[default] interface IFormEditorItemCollection;
	};
	[
		noncreatable,
		uuid(9872B395-5DF7-4CE1-BDA6-7ABA77FBD6BA),
		helpstring("FormEditorItemDetails Class")
	]
	coclass FormEditorItemDetails
	{
		[default] interface IFormEditorItemDetails;
	};
	[
		noncreatable,
		hidden,
		uuid(6FCC9842-7E49-11D6-97A6-444553540000),
		helpstring("FormPropertiesAccessor Class")
	]
	coclass FormPropertiesAccessor
	{
		[default] interface IFormPropertiesAccessor;
	};
	[
		hidden,
		uuid(78BE18C1-5225-11D6-BCED-444553540000),
		helpstring("PropPageExtended Class")
	]
	coclass PropPageExtended
	{
		interface IUnknown;
	};
	[
		uuid(E78FC0E8-1C8E-11D6-B6A6-B864D14CD046),
		helpstring("FormViewer Class")
	]
	coclass FormViewer
	{
		[default] interface IFormViewer2;
		[default, source] dispinterface _IFormViewerEvents;
		interface IFormViewer;
	};
	[
		hidden,
		uuid(FDFC1A43-88F9-11D6-97A6-444553540000),
		helpstring("PropPageFormViewer Class")
	]
	coclass PropPageFormViewer
	{
		interface IUnknown;
	};
	[
		noncreatable,
		uuid(04971073-347F-4856-9F18-B000B37B7C92),
		helpstring("FormViewerItemCollection Class")
	]
	coclass FormViewerItemCollection
	{
		[default] interface IFormViewerItemCollection;
	};
	[
		noncreatable,
		uuid(5D82D202-C1ED-442D-8583-96FAA2F9A3CE),
		helpstring("FormViewerItemDetails Class")
	]
	coclass FormViewerItemDetails
	{
		[default] interface IFormViewerItemDetails;
	};
	[
		noncreatable,
		uuid(C7E5F862-82E4-11D6-97A6-F8D89CA85F41),
		helpstring("ViewableForm Class")
	]
	coclass ViewableForm
	{
		[default] interface IViewableForm;
		[default, source] dispinterface _IViewableFormEvents;
	};
	[
		noncreatable,
		hidden,
		uuid(94D9F248-A2D5-447F-9ED5-9A8ACE6A6A03),
		helpstring("EventSinkPassThrough Class")
	]
	coclass EventSinkPassThrough
	{
		[default] interface IUnknown;
	};
};

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
Web Developer
United Kingdom United Kingdom
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

Comments and Discussions