module attribute
The module statement defines a group of functions, typically a set of DLL entry points.
[
attributes
]
module modulename
{
elementlist
};
-
attributes
-
The [uuid], [version], [helpstring], [helpcontext], [hidden], and [dllname] attributes are accepted before a module statement. See Attribute Descriptions, in the OLE Automation book, for more information on the attributes accepted before a module definition. The [dllname] attribute is required. If the [uuid] attribute is omitted, the module is not uniquely specified in the system.
-
modulename
-
The name of the module.
-
elementlist
-
List of constant definitions and function prototypes for each function in the DLL. Any number of function definitions can appear in the function list. A function in the function list has the following form:
[attributes] returntype [calling convention funcname](params);
[attributes] const constanttype constname = constval;
Only the [helpstring] and [helpcontext] attributes are accepted for a const.
The following attributes are accepted on a function in a module: [helpstring], [helpcontext], [string], [entry], [propget], [propput], [propputref], and [vararg]. If [vararg] is specified, the last parameter must be a safe array of VARIANT type.
The optional calling convention can be one of __pascal/_pascal/pascal, __cdecl/_cdecl/cdecl, or __stdcall/_stdcall/stdcall. The calling convention type paramname can include up to two leading underscores.
The parameter list is a comma-delimited list of:
[attributes]
The type can be any previously declared type or built-in type, a pointer to any type, or a pointer to a built-in type. Attributes on parameters are:
If [optional] is used, the types of those parameters must be VARIANT or VARIANT*.
The header file (.h) output for modules is a series of function prototypes. The module keyword and surrounding brackets are stripped from the header (.h) file output, but a comment (// module modulename) is inserted before the prototypes. The keyword extern is inserted before the declarations.
[
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);
};