module
This statement defines a group of functions, typically a set of DLL entry points.
Syntax
[attributes]
module modulename {
elementlist
};
-
attributes
-
The attributes uuid, version, helpstring, helpcontext, hidden, and dllname are accepted before a module statement. The dllname attribute is required. If uuidis omitted, the module is not uniquely specified in the system.
-
modulename
-
The name of the module.
-
elementlist
-
The 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 attributes helpstring and helpcontext are accepted for a const.
The following attributes are accepted on a function in a module: helpstring,helpcontext, string, entry, propget, propput, propputref, 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 can include up to two leading underscores.
The parameter list is a comma-delimited list.
[attributes] type paramname
Remarks
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 in, out, and optional.
If optional is specified, it must only be specified on the right-most parameters, and the types of those parameters must be 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 file output, but a comment (\\modulemodulename) is inserted before the prototypes. The keyword extern is inserted before the declarations.
Example
[uuid(D00BED00-CEDE-B1FF-F001-A100FF001ED),
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);
};
Related topics