ITester Interface

[
    object,
    uuid(5BD62C45-47CF-4E12-87B4-A4AB34CB0419),
    dual,
    nonextensible,
    helpstring("ITester Interface"),
    pointer_default(unique)
]
interface ITester : IDispatch{
    [id(1), propget, helpstring("property ActionCount")] 
        HRESULT ActionCount([out, retval] ULONG* pVal);
    [id(2), propget, helpstring("property Actions")] 
        HRESULT Actions([in] ULONG ActionNumber,
                        [out, retval] BSTR* pVal);
    [id(3), helpstring("method Execute")] 
        HRESULT Execute([in] ULONG ActionNumber, 
                        [in] SAFEARRAY(VARIANT) parameters,
                        [out] SAFEARRAY(VARIANT) *values,
                        [out,retval] Result *result);
    [id(4), helpstring("method ActionDocumentation")] 
        HRESULT ActionDocumentation([in] ULONG ActionNumber,
                                    [out] BSTR *description,
                                    [out] SAFEARRAY(BSTR) *inParameters,
                                    [out] SAFEARRAY(BSTR) *outParameters);
    [id(5), helpstring("method Open")] 
        HRESULT Open([in] SAFEARRAY(VARIANT) parameters, 
                     [out, retval] VARIANT_BOOL *Opened);
    [id(6), helpstring("method Close")] 
        HRESULT Close([out, retval] VARIANT_BOOL *Closed);
    [id(7), helpstring("method Abort")] 
        HRESULT Abort(void);
    [id(8), propget, helpstring("property TesterType")] 
        HRESULT TesterType([out, retval] BSTR* pVal);
    [id(9), propget, helpstring("property Status")] 
        HRESULT Status([out, retval] BSTR* pVal);
    [id(10), helpstring("method SetTrace")] 
        HRESULT SetTrace([in] ITrace *trace);
};

[
    object,
    uuid(E05D6237-E80F-4a08-9CAD-EBA37CF8C951),
    dual,
    nonextensible,
    helpstring("ITester1 Interface"),
    pointer_default(unique)
]
interface ITester1 : ITester{
    [id(11), propget, helpstring("property Version")] 
        HRESULT Version([out, retval] BSTR* pVal);
    [id(12), helpstring("scriptDirectory")] 
        HRESULT scriptDirectory([in] BSTR dir);
}