Пример #1
0
        "Apartment"
    },
    { NULL }			/* list terminator */
};

/***********************************************************************
 *		interface list
 */

#define INTERFACE_ENTRY(interface, base, clsid32, clsid16) { &IID_##interface, #interface, base, sizeof(interface##Vtbl)/sizeof(void*), clsid16, clsid32 }
#define BAS_INTERFACE_ENTRY(interface, base) INTERFACE_ENTRY(interface, &IID_##base, &CLSID_PSFactoryBuffer, NULL)
#define STD_INTERFACE_ENTRY(interface) INTERFACE_ENTRY(interface, NULL, &CLSID_PSFactoryBuffer, NULL)
#define LCL_INTERFACE_ENTRY(interface) INTERFACE_ENTRY(interface, NULL, NULL, NULL)

static const struct regsvr_interface interface_list[] = {
    LCL_INTERFACE_ENTRY(IUnknown),
    STD_INTERFACE_ENTRY(IClassFactory),
    LCL_INTERFACE_ENTRY(IMalloc),
    LCL_INTERFACE_ENTRY(IMarshal),
    STD_INTERFACE_ENTRY(ILockBytes),
    STD_INTERFACE_ENTRY(IStorage),
    STD_INTERFACE_ENTRY(IStream),
    STD_INTERFACE_ENTRY(IEnumSTATSTG),
    STD_INTERFACE_ENTRY(IBindCtx),
    BAS_INTERFACE_ENTRY(IMoniker, IPersistStream),
    STD_INTERFACE_ENTRY(IRunningObjectTable),
    STD_INTERFACE_ENTRY(IRootStorage),
    LCL_INTERFACE_ENTRY(IMessageFilter),
    LCL_INTERFACE_ENTRY(IStdMarshalInfo),
    LCL_INTERFACE_ENTRY(IExternalConnection),
    LCL_INTERFACE_ENTRY(IMallocSpy),
Пример #2
0
        "oleaut32.dll",
        "Both"
    },
    { NULL }			/* list terminator */
};

/***********************************************************************
 *		interface list
 */
#define INTERFACE_ENTRY(interface, clsid16, clsid32) { &IID_##interface, #interface, NULL, sizeof(interface##Vtbl)/sizeof(void*), clsid16, clsid32 }
#define LCL_INTERFACE_ENTRY(interface) INTERFACE_ENTRY(interface, NULL, NULL)
#define PSFAC_INTERFACE_ENTRY(interface) INTERFACE_ENTRY(interface, NULL, &CLSID_PSFactoryBuffer)
#define CLSID_INTERFACE_ENTRY(interface,clsid) INTERFACE_ENTRY(interface, clsid, clsid)

static struct regsvr_interface const interface_list[] = {
    LCL_INTERFACE_ENTRY(ICreateTypeInfo),
    LCL_INTERFACE_ENTRY(ICreateTypeLib),
    CLSID_INTERFACE_ENTRY(IDispatch,&CLSID_PSDispatch),
    CLSID_INTERFACE_ENTRY(IEnumVARIANT,&CLSID_PSEnumVariant),
    CLSID_INTERFACE_ENTRY(ITypeComp,&CLSID_PSTypeComp),
    CLSID_INTERFACE_ENTRY(ITypeInfo,&CLSID_PSTypeInfo),
    CLSID_INTERFACE_ENTRY(ITypeLib,&CLSID_PSTypeLib),
    PSFAC_INTERFACE_ENTRY(IAdviseSinkEx),
    PSFAC_INTERFACE_ENTRY(IClassFactory2),
    PSFAC_INTERFACE_ENTRY(IConnectionPoint),
    PSFAC_INTERFACE_ENTRY(IConnectionPointContainer),
    PSFAC_INTERFACE_ENTRY(ICreateErrorInfo),
    PSFAC_INTERFACE_ENTRY(IEnumConnectionPoints),
    PSFAC_INTERFACE_ENTRY(IEnumConnections),
    PSFAC_INTERFACE_ENTRY(IEnumOleUndoUnits),
    PSFAC_INTERFACE_ENTRY(IErrorInfo),