qse/ase/com/ase.idl

200 lines
4.3 KiB
Plaintext

/*
* $Id: ase.idl,v 1.3 2006-12-11 14:58:25 bacon Exp $
*/
import "oaidl.idl";
import "ocidl.idl";
/* IAwk */
[
object,
uuid(05BC1C9F-7C4E-4F77-B186-2E0FD26C0641),
dual,
helpstring("ASE Awk Interface"),
pointer_default(unique)
]
interface IAwk : IDispatch
{
[id(1), helpstring("method Parse")]
HRESULT Parse([out, retval] int* ret);
[id(2), helpstring("method Run")]
HRESULT Run([out, retval] int* ret);
[propget, id(3), helpstring("property Option")]
HRESULT Option([out, retval] int *pVal);
[propput, id(3), helpstring("property Option")]
HRESULT Option([in] int newVal);
};
/* ASELib */
[
uuid(F9C69806-16A1-4162-998A-876B33C470BF),
version(1.0),
helpstring("ASE 1.0 Type Library")
]
library ASELib
{
importlib("stdole32.tlb");
importlib("stdole2.tlb");
[helpstring("Awk options")]
typedef [v1_enum] enum AwkOption
{
AWK_IMPLICIT = (1 << 0),
AWK_EXPLICIT = (1 << 1),
AWK_UNIQUEAFN = (1 << 2),
AWK_SHADING = (1 << 3),
AWK_SHIFT = (1 << 4),
AWK_IDIV = (1 << 5),
AWK_HASHSIGN = (1 << 6),
AWK_STRCONCAT = (1 << 7),
AWK_EXTIO = (1 << 8),
AWK_BLOCKLESS = (1 << 9),
AWK_STRINDEXONE = (1 << 10),
AWK_STRIPSPACES = (1 << 11),
AWK_NEXTOFILE = (1 << 12)
} AwkOption;
[helpstring("AwkExtio tpe")]
typedef [v1_enum] enum AwkExtioType
{
AWK_EXTIO_PIPE = 0,
AWK_EXTIO_COPROC = 1,
AWK_EXTIO_FILE = 2,
AWK_EXTIO_CONSOLE = 3
} AwkExtioType;
[helpstring("AwkExtio mode")]
typedef [v1_enum] enum AwkExtioMode
{
AWK_EXTIO_PIPE_READ = 0,
AWK_EXTIO_PIPE_WRITE = 1,
AWK_EXTIO_COPROC_READ = 0,
AWK_EXTIO_COPROC_WRITE = 1,
AWK_EXTIO_COPROC_RDWR = 2,
AWK_EXTIO_FILE_READ = 0,
AWK_EXTIO_FILE_WRITE = 1,
AWK_EXTIO_FILE_APPEND = 2,
AWK_EXTIO_CONSOLE_READ = 0,
AWK_EXTIO_CONSOLE_WRITE = 1
} AwkExtioMode;
/* IBuffer */
[
object,
uuid(AD5EA986-37E9-410E-A78E-21799104293A),
dual,
helpstring("IBuffer Interface"),
pointer_default(unique)
]
interface IBuffer : IDispatch
{
[propget, id(1), helpstring("property Value")]
HRESULT Value([out, retval] BSTR *pVal);
[propput, id(1), helpstring("property Value")]
HRESULT Value([in] BSTR newVal);
};
/* IAwkExtio */
[
object,
uuid(BE0B91FF-9944-4DFC-A55B-1FE14E24AFEE),
dual,
helpstring("IAwkExtio Interface"),
pointer_default(unique)
]
interface IAwkExtio : IDispatch
{
[propget, id(1), helpstring("property Name")]
HRESULT Name([out, retval] BSTR *pVal);
[propget, id(2), helpstring("property Type")]
HRESULT Type([out, retval] int *pVal);
[propget, id(3), helpstring("property Mode")]
HRESULT Mode([out, retval] int *pVal);
[propget, id(4), helpstring("property Handle")]
HRESULT Handle([out, retval] VARIANT *pVal);
[propput, id(4), helpstring("property Handle")]
HRESULT Handle([in] VARIANT newVal);
};
/* IAwkEvents */
[
uuid(1351DC8F-10AD-4C40-A2FA-9A2E89C27AC8),
helpstring("ASE Awk Events Interface")
]
dispinterface IAwkEvents
{
properties:
methods:
[id(1), helpstring("open the source code")]
int OpenSource([in] int mode);
[id(2), helpstring("close the source code")]
int CloseSource([in] int mode);
[id(3), helpstring("read the source code")]
int ReadSource([in] IBuffer* buf);
[id(4), helpstring("write the source code")]
int WriteSource([in] IBuffer* buf);
[id(5), helpstring("method OpenExtio")]
int OpenExtio([in] IAwkExtio* extio);
[id(6), helpstring("method CloseExtio")]
int CloseExtio([in] IAwkExtio* extio);
[id(7), helpstring("method ReadExtio")]
int ReadExtio([in] IAwkExtio* extio, [in] IBuffer* buf);
[id(8), helpstring("method WriteExtio")]
int WriteExtio([in] IAwkExtio* extio, [in] IBuffer* buf);
[id(9), helpstring("method FlushExtio")]
int FlushExtio([in] IAwkExtio* extio);
[id(10), helpstring("method NextExtio")]
int NextExtio([in] IAwkExtio* extio);
};
/* Awk */
[
uuid(AD863B53-F5EC-45C3-8B1C-6AC678227DC8),
helpstring("ASE Awk Class")
]
coclass Awk
{
[default] interface IAwk;
[default,source] dispinterface IAwkEvents;
};
/* AwkExtio */
[
uuid(F52F065A-5FD4-4F4D-AFEA-F5E446B16383),
helpstring("ASE AwkExtio Class")
]
coclass AwkExtio
{
[default] interface IAwkExtio;
};
/* Buffer */
[
uuid(866B79A7-7628-4808-8AE7-784BE2491C80),
helpstring("ASE Buffer Class")
]
coclass Buffer
{
[default] interface IBuffer;
};
};