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.
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.
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 |