Export (0) Print
Expand All
COM
id
in
int
odl
out
ptr
ref
Expand Minimize

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

 

 

Community Additions

ADD
Show:
© 2014 Microsoft