Registry Key Structure

The following chain of Registry keys establishes the base for all plug-in descriptions:

HKEY_CURRENT_USER\SOFTWARE\Autodesk\3dsMax\<VersionNumber>\Plugins\Discreet

Under the 'Plugins' key, there can be one key for each supplier of plug-ins; for the internal 3ds Max plug-ins, this key is 'Discreet'. Under the key for a supplier there will be one key per deferrable plug-in, with a name that is distinct from all other plug-in key names from that supplier.

This 'plug-in key' has certain mandatory values, and under it there will be one key per 3ds Max class implemented by the plug-in. The name of each class key must be distinct, at least within the given plug-in. Each such 'class key' has a set of values, describing certain important properties of the class.

Example

The following is an example from the VRML plug-in for 3ds Max:

Name Type Data
DLLFile REG_SZ vrmlimp.dli
LibDescription REG_SZ VRML Scene Importer (Discreet)
LibVersion REG_DWORD 0x1f401100 (524292352)
TimeStampHigh REG_DWORD 0x01c6203e (29761598)
TimeStampLow REG_DWORD 0x63bc8c00 (1673300992)

Notes: The DLLFile value gives the name of the DLL file that this key describes; case is disregarded. The name must be unique, and must not match two different files, even if they are in different directories.

Class Key Values

Name Type Data
Category REG_SZ
ClassIDA REG_DWORD 0x35da0f0a (903483146)
ClassIDB REG_DWORD 0x10ce4af8 (281955064)
ClassName REG_SZ VrmlImp
Ext REG_SZ WRL;WRZ
ExtCount REG_DWORD 0x00000002 (2)
IsPublic REG_DWORD 0x00000001 (1)
OKToCreate REG_DWORD 0x00000001 (1)
ShortDesc REG_SZ VRML
SuperClassID REG_DWORD 0x00000a10 (2576)

Notes: The IsPublic and OKToCreate values should be 0 (no) or 1 (yes). The Ext value consists of upper-case file extensions (without the leading dot); if there are more than one, they are separated by semicolons, with no spaces before or after. The number of extensions given in the Ext value must agree with the ExtCount value. The InternalName value should not be defined if it returns NULL.

The following extra value types are required for different types of plug-ins, listed below:

Value Type Data Required for:
SupportsOptions REG_DWORD 0 Exporters
LongDesc REG_SZ BMP Image File Bitmap loaders
Capability REG_DWORD 0 Bitmap loaders
InputTypeA REG_DWORD 0x10 Modifiers
InputTypeB REG_DWORD 0x00 Modifiers
InternalName REG_SZ BitmapTex All plug-ins using ParamBlock2/ClassDesc2