/********************************************************************************************/
//STDBSC组件
//********************************************************************************************/
[
    uuid(90969BD6-0866-4E47-B5C8-A7C49D2E7C5E),
    version(2.00),
    helpstring("STD 2.0 Type Library (IEEE Std 1641)")
]
library STDBSC
{
    importlib("stdole32.tlb");
    importlib("stdole2.tlb");    //helper to forward declare interfaces and provide typedefs
    #define INTDECL( i )    interface I##i; typedef I##i* i    //看不懂什么叫INTDECL();
//    INTDECL( SignalFunction );
//********************************************************************************************/
//ISFCollection
//********************************************************************************************/
[
object,
uuid(FAFB0CFA-2EEE-4d81-A84F-4B9F6AD0FEA7),
dual,
helpstring("ISFCollection Interface"),
pointer_default(unique)
] interface ISFCollection : IDispatch
{
//计数器
[propget, id(DISPID_NEWENUM), restricted ,helpstring("Enumerator")] 
HRESULT _NewEnum([out, retval] IUnknown** ppUnk);
//此项参数与STD有差异,返回SignalFunction的子项
[propget, id(DISPID_VALUE), helpstring("Returns the specified sub-item of the SignalFunction.")] 
HRESULT Item([in] VARIANT varItem, [out, retval] SignalFunction* pVal);
};
///////////////////////////////////////////////////////////////////////////////////////////
[
uuid(DBB38C1E-0C06-4EC1-8B1D-904914D4E62E),
helpstring("SFCollection Class")
]
coclass SFCollection
{
[default] interface ISFCollection;
};//********************************************************************************************/
//ISignalFunction
//********************************************************************************************/ [
object,
uuid(A29E2136-E439-4A76-B505-6C4F8DD61095),
dual,
helpstring("ISignalFunction Interface"),
pointer_default(unique)
]
interface ISignalFunction : IDispatch
{
enum {SIGNALFUNCTION_BASE=0};
//返回SignalFunction子项的一个合集
[propget, id(DISPID_VALUE), helpstring("Returns a collection of sub-items of this SignalFunction.")] 
HRESULT SignalFunctions([out, retval] ISFCollection** pVal);
}; ///////////////////////////////////////////////////////////////////////////////////////////
[
uuid(47B4F954-B47F-4329-A431-1455B8A506EC),
helpstring("SignalFunction Class")
]
coclass SignalFunction
{
[default] interface ISignalFunction;
};
};错误一:
    直接编译,error MIDL2025 : syntax error : expecting a type specification near "SignalFunction"
    若调换两个接口的书写顺序,错误变为error MIDL2025 : syntax error : expecting a type specification near "SFCollection"
错误二:
     若不注释掉//    INTDECL( SignalFunction );这句,提示错误error MIDL2003 : redefinition : SignalFunction