module attribute

The module statement defines a group of functions, typically a set of DLL entry points.

[
    attributes
]
module modulename 
{
    elementlist
};

Parameters

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:

[in], [out], [optional].

If [optional] is used, the types of those parameters must be VARIANT or VARIANT*.

Remarks

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.

Examples

[
    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); 
};

See also

const

Contents of a Type Library

dllname

entry

Generating a Type Library With MIDL

helpcontext

helpstring

hidden

ODL File Syntax

propget

propput

propputref

string

TYPEFLAGS

uuid

vararg

version