⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 oaidl.idl

📁 vc6.0完整版
💻 IDL
📖 第 1 页 / 共 4 页
字号:
    WORD cbAlignment;           /* specifies the alignment requirements for
                                   an instance of this type,
                                   0 = align on 64k boundary
                                   1 = byte align
                                   2 = word align
                                   4 = dword align... */
    WORD wTypeFlags;
    WORD wMajorVerNum;          /* major version number */
    WORD wMinorVerNum;          /* minor version number */
    TYPEDESC tdescAlias;        /* if typekind == TKIND_ALIAS this field
                                   specifies the type for which this type
                                   is an alias */
    IDLDESC idldescType;        /* IDL attributes of the described type */
} TYPEATTR, * LPTYPEATTR;

typedef struct tagDISPPARAMS {
    [size_is(cArgs)] VARIANTARG * rgvarg;
    [size_is(cNamedArgs)] DISPID * rgdispidNamedArgs;
    UINT cArgs;
    UINT cNamedArgs;
} DISPPARAMS;

cpp_quote("#if 0")
cpp_quote("/* the following is what MIDL knows how to remote */")

typedef struct tagEXCEPINFO {
    WORD  wCode;            /* An error code describing the error. */
    WORD  wReserved;
    BSTR  bstrSource;       /* A source of the exception */
    BSTR  bstrDescription;  /* A description of the error */
    BSTR  bstrHelpFile;     /* Fully qualified drive, path, and file name */
    DWORD dwHelpContext;    /* help context of topic within the help file */
    ULONG pvReserved;
    ULONG pfnDeferredFillIn;
    SCODE scode;
} EXCEPINFO;

cpp_quote("#else /* 0 */")
cpp_quote("typedef struct tagEXCEPINFO {")
cpp_quote("    WORD  wCode;")
cpp_quote("    WORD  wReserved;")
cpp_quote("    BSTR  bstrSource;")
cpp_quote("    BSTR  bstrDescription;")
cpp_quote("    BSTR  bstrHelpFile;")
cpp_quote("    DWORD dwHelpContext;")
cpp_quote("    PVOID pvReserved;")
cpp_quote("    HRESULT (__stdcall *pfnDeferredFillIn)(struct tagEXCEPINFO *);")
cpp_quote("    SCODE scode;")
cpp_quote("} EXCEPINFO, * LPEXCEPINFO;")
cpp_quote("#endif /* 0 */")

typedef [v1_enum] enum tagCALLCONV {
    CC_FASTCALL = 0,
    CC_CDECL = 1,
    CC_MSCPASCAL,
    CC_PASCAL = CC_MSCPASCAL,
    CC_MACPASCAL,
    CC_STDCALL,
    CC_FPFASTCALL,
    CC_SYSCALL,
    CC_MPWCDECL,
    CC_MPWPASCAL,
    CC_MAX          /* end of enum marker */
} CALLCONV;

typedef [v1_enum] enum tagFUNCKIND {
    FUNC_VIRTUAL,
    FUNC_PUREVIRTUAL,
    FUNC_NONVIRTUAL,
    FUNC_STATIC,
    FUNC_DISPATCH
} FUNCKIND;

typedef [v1_enum] enum tagINVOKEKIND {
    INVOKE_FUNC = 1,
    INVOKE_PROPERTYGET = 2,
    INVOKE_PROPERTYPUT = 4,
    INVOKE_PROPERTYPUTREF = 8
} INVOKEKIND;

typedef struct tagFUNCDESC {
    MEMBERID memid;
    [size_is(cScodes)] SCODE * lprgscode;
    [size_is(cParams)] ELEMDESC * lprgelemdescParam; /* array of param types */
    FUNCKIND funckind;
    INVOKEKIND invkind;
    CALLCONV callconv;
    SHORT cParams;
    SHORT cParamsOpt;
    SHORT oVft;
    SHORT cScodes;
    ELEMDESC elemdescFunc;
    WORD wFuncFlags;
} FUNCDESC, * LPFUNCDESC;

typedef [v1_enum] enum tagVARKIND {
    VAR_PERINSTANCE,
    VAR_STATIC,
    VAR_CONST,
    VAR_DISPATCH
} VARKIND;

/* IMPLTYPE Flags */
const USHORT IMPLTYPEFLAG_FDEFAULT      = 0x1;
const USHORT IMPLTYPEFLAG_FSOURCE       = 0x2;
const USHORT IMPLTYPEFLAG_FRESTRICTED   = 0x4;
const USHORT IMPLTYPEFLAG_FDEFAULTVTABLE= 0x8;

typedef struct tagVARDESC {
    MEMBERID memid;
    LPOLESTR lpstrSchema;
    [switch_type(VARKIND), switch_is(varkind)] union {
        /* offset of variable within the instance */
        [case(VAR_PERINSTANCE, VAR_DISPATCH, VAR_STATIC)] ULONG oInst;
        [case(VAR_CONST)] VARIANT * lpvarValue; /* the value of the constant */
    };
    ELEMDESC elemdescVar;
    WORD     wVarFlags;
    VARKIND  varkind;
} VARDESC, * LPVARDESC;

typedef enum tagTYPEFLAGS {
    TYPEFLAG_FAPPOBJECT = 0x01,
    TYPEFLAG_FCANCREATE = 0x02,
    TYPEFLAG_FLICENSED = 0x04,
    TYPEFLAG_FPREDECLID = 0x08,
    TYPEFLAG_FHIDDEN = 0x10,
    TYPEFLAG_FCONTROL = 0x20,
    TYPEFLAG_FDUAL = 0x40,
    TYPEFLAG_FNONEXTENSIBLE = 0x80,
    TYPEFLAG_FOLEAUTOMATION = 0x100,
    TYPEFLAG_FRESTRICTED = 0x200,
    TYPEFLAG_FAGGREGATABLE = 0x400,
    TYPEFLAG_FREPLACEABLE = 0x800,
    TYPEFLAG_FDISPATCHABLE = 0x1000,
    TYPEFLAG_FREVERSEBIND = 0x2000
} TYPEFLAGS;

typedef enum tagFUNCFLAGS {
    FUNCFLAG_FRESTRICTED = 0x1,
    FUNCFLAG_FSOURCE = 0x2,
    FUNCFLAG_FBINDABLE = 0x4,
    FUNCFLAG_FREQUESTEDIT = 0x8,
    FUNCFLAG_FDISPLAYBIND = 0x10,
    FUNCFLAG_FDEFAULTBIND = 0x20,
    FUNCFLAG_FHIDDEN = 0x40,
    FUNCFLAG_FUSESGETLASTERROR = 0x80,
    FUNCFLAG_FDEFAULTCOLLELEM = 0x100,
    FUNCFLAG_FUIDEFAULT = 0x200,
    FUNCFLAG_FNONBROWSABLE = 0x400,
    FUNCFLAG_FREPLACEABLE = 0x800,
    FUNCFLAG_FIMMEDIATEBIND = 0x1000
} FUNCFLAGS;

typedef enum tagVARFLAGS {
    VARFLAG_FREADONLY = 0x1,
    VARFLAG_FSOURCE = 0x2,
    VARFLAG_FBINDABLE = 0x4,
    VARFLAG_FREQUESTEDIT = 0x8,
    VARFLAG_FDISPLAYBIND = 0x10,
    VARFLAG_FDEFAULTBIND = 0x20,
    VARFLAG_FHIDDEN = 0x40,
    VARFLAG_FRESTRICTED = 0x80,
    VARFLAG_FDEFAULTCOLLELEM = 0x100,
    VARFLAG_FUIDEFAULT = 0x200,
    VARFLAG_FNONBROWSABLE = 0x400,
    VARFLAG_FREPLACEABLE = 0x800,
    VARFLAG_FIMMEDIATEBIND = 0x1000
} VARFLAGS;

typedef [wire_marshal(DWORD)] struct tagCLEANLOCALSTORAGE {
    IUnknown * pInterface;      /* interface that is responsible for storage */
    PVOID pStorage;             /* the storage being managed by interface */
    DWORD flags;                /* which interface, what storage */
} CLEANLOCALSTORAGE;

typedef struct tagCUSTDATAITEM {
    GUID guid;           /* guid identifying this custom data item */
    VARIANTARG varValue; /* value of this custom data item */
} CUSTDATAITEM, * LPCUSTDATAITEM;

typedef struct tagCUSTDATA {
    DWORD cCustData;            /* number of custom data items in rgCustData */
    [size_is(cCustData)] LPCUSTDATAITEM prgCustData;
                                /* array of custom data items */
} CUSTDATA, * LPCUSTDATA;

}


[
    object,
    uuid(00020405-0000-0000-C000-000000000046),
    pointer_default(unique),
    local
]

interface ICreateTypeInfo: IUnknown
{
    typedef [unique] ICreateTypeInfo * LPCREATETYPEINFO;

    HRESULT SetGuid(
                [in] REFGUID guid
            );

    HRESULT SetTypeFlags(
                [in] UINT uTypeFlags
            );

    HRESULT SetDocString(
                [in] LPOLESTR pStrDoc
            );

    HRESULT SetHelpContext(
                [in] DWORD dwHelpContext
            );

    HRESULT SetVersion(
                [in] WORD wMajorVerNum,
                [in] WORD wMinorVerNum
            );

    HRESULT AddRefTypeInfo(

                [in] ITypeInfo * pTInfo,
                [in] HREFTYPE * phRefType
            );

    HRESULT AddFuncDesc(
                [in] UINT index,
                [in] FUNCDESC * pFuncDesc
            );

    HRESULT AddImplType(
                [in] UINT index,
                [in] HREFTYPE hRefType
            );

    HRESULT SetImplTypeFlags(
                [in] UINT index,
                [in] INT implTypeFlags
            );

    HRESULT SetAlignment(
                [in] WORD cbAlignment
            );

    HRESULT SetSchema(
                [in] LPOLESTR pStrSchema
            );

    HRESULT AddVarDesc(
                [in] UINT index,
                [in] VARDESC * pVarDesc
            );

    HRESULT SetFuncAndParamNames(
                [in] UINT index,
                [in, size_is((UINT) cNames)]
                [in] LPOLESTR * rgszNames,
                [in] UINT cNames
            );

    HRESULT SetVarName(
                [in] UINT index,
                [in] LPOLESTR szName
            );

    HRESULT SetTypeDescAlias(
                [in] TYPEDESC * pTDescAlias
            );

    HRESULT DefineFuncAsDllEntry(
                [in] UINT index,
                [in] LPOLESTR szDllName,
                [in] LPOLESTR szProcName
            );

    HRESULT SetFuncDocString(
                [in] UINT index,
                [in] LPOLESTR szDocString
            );

    HRESULT SetVarDocString(
                [in] UINT index,
                [in] LPOLESTR szDocString
            );

    HRESULT SetFuncHelpContext(
                [in] UINT index,
                [in] DWORD dwHelpContext
            );

    HRESULT SetVarHelpContext(
                [in] UINT index,
                [in] DWORD dwHelpContext
            );

    HRESULT SetMops(
                [in] UINT index,
                [in] BSTR bstrMops
            );

    HRESULT SetTypeIdldesc(
                [in] IDLDESC * pIdlDesc
            );

    HRESULT LayOut(
                void
            );

}


[
    object,
    uuid(0002040E-0000-0000-C000-000000000046),
    pointer_default(unique),
    local
]

interface ICreateTypeInfo2: ICreateTypeInfo
{
    typedef [unique] ICreateTypeInfo2 * LPCREATETYPEINFO2;

    HRESULT DeleteFuncDesc(
                [in] UINT index
            );

    HRESULT DeleteFuncDescByMemId(
                [in] MEMBERID memid,
                [in] INVOKEKIND invKind
            );

    HRESULT DeleteVarDesc(
                [in] UINT index
            );

    HRESULT DeleteVarDescByMemId(
                [in] MEMBERID memid
            );

    HRESULT DeleteImplType(
                [in] UINT index
            );

    HRESULT SetCustData(
                [in] REFGUID guid,
                [in] VARIANT * pVarVal
            );

    HRESULT SetFuncCustData( 
                [in] UINT index, 
                [in] REFGUID guid, 
                [in] VARIANT * pVarVal
            );
    
    HRESULT SetParamCustData( 
                [in] UINT indexFunc, 
                [in] UINT indexParam, 
                [in] REFGUID guid, 
                [in] VARIANT * pVarVal
            );

    HRESULT SetVarCustData( 
                [in] UINT index, 
                [in] REFGUID guid, 
                [in] VARIANT * pVarVal
            );

    HRESULT SetImplTypeCustData( 
                [in] UINT index, 
                [in] REFGUID guid, 
                [in] VARIANT * pVarVal
            );

    HRESULT SetHelpStringContext(
                [in] ULONG dwHelpStringContext
            );

    HRESULT SetFuncHelpStringContext(
                [in] UINT index,
                [in] ULONG dwHelpStringContext
            );

    HRESULT SetVarHelpStringContext(
                [in] UINT index,
                [in] ULONG dwHelpStringContext
            );

    HRESULT Invalidate(
                void
            );

    HRESULT SetName(
                [in]  LPOLESTR szName
            );

}


[
    object,
    uuid(00020406-0000-0000-C000-000000000046),
    pointer_default(unique),
    local
]

interface ICreateTypeLib : IUnknown
{
    typedef [unique] ICreateTypeLib * LPCREATETYPELIB;

    HRESULT CreateTypeInfo(
                [in]  LPOLESTR szName,
                [in]  TYPEKIND tkind,
                [out] ICreateTypeInfo ** ppCTInfo
            );

    HRESULT SetName(
                [in]  LPOLESTR szName
            );

    HRESULT SetVersion(
                [in] WORD wMajorVerNum,
                [in] WORD wMinorVerNum
            );

    HRESULT SetGuid(
                [in] REFGUID guid
            );

    HRESULT SetDocString(
                [in] LPOLESTR szDoc
            );

    HRESULT SetHelpFileName(
                [in] LPOLESTR szHelpFileName
            );

    HRESULT SetHelpContext(
                [in] DWORD dwHelpContext
            );

    HRESULT SetLcid(
                [in] LCID lcid
            );

    HRESULT SetLibFlags(
                [in] UINT uLibFlags
            );

    HRESULT SaveAllChanges(
                void
            );
}


[
    object,
    uuid(0002040F-0000-0000-C000-000000000046),
    pointer_default(unique),
    local
]

interface ICreateTypeLib2 : ICreateTypeLib
{
    typedef [unique] ICreateTypeLib2 * LPCREATETYPELIB2;

    HRESULT DeleteTypeInfo(
                [in] LPOLESTR szName
            );

    HRESULT SetCustData(
                [in] REFGUID guid,
                [in] VARIANT * pVarVal
            );

    HRESULT SetHelpStringContext(
                [in] ULONG dwHelpStringContext
            );

    HRESULT SetHelpStringDll(
                [in] LPOLESTR szFileName
            );
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -