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]
该类型可以是之前声明的任何类型或内置类型、指向任意类型的指针或指向内置类型的指针。 参数的属性包括:
如果使用 [可选] ,则这些参数的类型必须为 VARIANT 或 VARIANT*。
模块的头文件 (.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);
};