module 特性

模块语句定义一组函数,通常是一组 DLL 入口点。

[
    attributes
]
module modulename 
{
    elementlist
};

参数

attributes

模块语句之前接受 [uuid]、[version]、[helpstring]、[helpcontext]、[hidden]和 [dllname] 属性。 有关在模块定义之前接受的属性的详细信息,请参阅 OLE 自动化书籍中的属性 说明。 [dllname] 属性是必需的。 如果省略 [uuid] 属性,则不会在系统中唯一指定模块。

modulename

模块的名称。

elementlist

DLL 中每个函数的常量定义和函数原型列表。 函数列表中可以显示任意数量的函数定义。 函数列表中的函数具有以下形式:

[attributes] returntype [调用约定 funcname] (参数) ;

[attributes] const constanttype constname = constval;

const 仅接受 [helpstring] 和 [helpcontext] 属性。

模块中的函数接受以下属性:[helpstring]、[helpcontext]、[string]、[entry]、[propget]、[propput]、[propputref]和 [vararg]。 如果指定了 [vararg] ,则最后一个参数必须是 VARIANT 类型的安全数组。

可选的调用约定可以是 __pascal/_pascal/pascal、__cdecl/_cdecl/cdecl 或 __stdcall/_stdcall/stdcall 之一。 调用约定类型 paramname 最多可以包含两个前导下划线。

参数列表是逗号分隔的列表::

[attributes]

该类型可以是之前声明的任何类型或内置类型、指向任意类型的指针或指向内置类型的指针。 参数的属性包括:

[in]、[out]、[可选]。

如果使用 [可选] ,则这些参数的类型必须为 VARIANTVARIANT*。

备注

模块的头文件 (.h) 输出是一系列函数原型。 模块关键字 (keyword) 和周围的括号从文件输出的标头 (.h) 去除,但在原型之前插入 (// modulemodulename) 注释。 在声明之前插入关键字 (keyword)

示例

[
    uuid(12345678-1234-1234-1234-123456789ABC), 
    helpstring("This is not GDI.EXE"), 
    helpcontext(190), 
    dllname("MATH.DLL")
] 
module somemodule
{ 
    [helpstring("Color for the frame")] 
            unsigned long const COLOR_FRAME = 0xH80000006; 
    [helpstring("Not a rectangle but a square"), 
     entry(1)] 
            pascal double square([in] double x); 
};

另请参阅

const

类型库的内容

dllname

进入

使用 MIDL 生成类型库

helpcontext

helpstring

隐藏

ODL 文件语法

propget

propput

propputref

字符串

TYPEFLAGS

uuid

vararg

版本