Defines

Version Macros

Defines

#define  MAX_RELEASE_EXTERNAL   MAX_RELEASE
  MAX_RELEASE_EXTERNAL is an alternative for MAX_RELEASE that can be used for UI when the internal version of the product is different from the branded version number.

3ds Max Release Identifiers

#define  MAX_RELEASE_UNSUPPORTED   (-1)
  Represents an unsupported 3ds Max version.
#define  MAX_RELEASE_R7   7000
  3ds Max 7 release ID
#define  MAX_RELEASE_R8_ALPHA   7800
  3ds Max 8 alpha release ID
#define  MAX_RELEASE_R8   8000
  3ds Max 8 release id
#define  MAX_RELEASE_R9_ALPHA   8900
  3ds Max 9 alpha release id
#define  MAX_RELEASE_R9_ALPHA2   8901
  3ds Max 9 alpha 2 release id (file format change)
#define  MAX_RELEASE_R9   9000
  3ds Max 9 release id
#define  MAX_RELEASE_R10_ALPHA   9900
  3ds Max 10 alpha release id
#define  MAX_RELEASE_R10   10000
  3ds Max 10 release id
#define  MAX_RELEASE_R11_ALPHA   10900
  3ds Max 2009 alpha release id
#define  MAX_RELEASE_R11   11000
  3ds Max 2009 release id
#define  MAX_RELEASE_R12_ALPHA   11900
  3ds Max 2010 alpha release id
#define  MAX_RELEASE_R12   12000
  3ds Max 2010 release id
#define  MAX_RELEASE_R13_ALPHA   12900
  3ds Max 2011 alpha release id
#define  MAX_RELEASE_R13   13000
  3ds Max 2011 release id
#define  MAX_RELEASE_R14_ALPHA   13900
  3ds Max R14 Alpha, Beta release id
#define  MAX_RELEASE_R14   14000
  3ds Max R14 release id
#define  MAX_RELEASE   MAX_RELEASE_R14
  Identifier of the current 3ds Max release.

Max SDK Version Numbers.

The SDK version number is updated every time a build of Max containing SDK changes is distributed to 3rd party plugin developers.This can be an alpha, beta or release candidate build. Although we make every effort to keep Max backward compatible with plugins built against previous versions of the Max SDK, occasionally plugins are required to be re-built against the latest version of the Max SDK in order for Max to load them. Plugins built against a certain version of the Max SDK will not load in previous versions of Max. Note that the Max SDK version number is encoded in VERSION_3DSMAX.SDK backward compatibility history:
  • 3ds Max R5 is binary compatible with 3ds Max R4
  • 3ds Max R8 is binary compatible with 3ds Max R6
  • 3ds Max R9.0 not binary compatible with previous releases
  • 3ds Max R10 is binary compatible with 3ds Max R9
  • 3ds Max R11 not binary compatible with previous releases
  • 3ds Max R12 not binary compatible with previous releases
  • 3ds Max R13 is binary compatible with 3ds Max R12
See also:
VERSION_3DSMAX
LibVersion

enum   APPLICATION_ID {
  kAPP_NONE, kAPP_MAX, kAPP_VIZ, kAPP_GMAX,
  kAPP_PLASMA, kAPP_VIZR
}
CoreExport APPLICATION_ID  GetAppID ()
  Returns the ApplicationID, either VIZ or MAX.
#define  MAX_API_NUM_R20   4
#define  MAX_API_NUM_R25   5
#define  MAX_API_NUM_R30   6
#define  MAX_API_NUM_R31   7
#define  MAX_API_NUM_R40   8
#define  MAX_API_NUM_R42   9
#define  MAX_API_NUM_R50   11
  3ds Max 5 SDK.
#define  MAX_API_NUM_R60_PRE_REL   12
  3ds Max 6 SDK pre-release.
#define  MAX_API_NUM_R60   13
  3ds Max 6 SDK.
#define  MAX_API_NUM_R70_PRE_REL   14
  3ds Max 7 SDK pre-release.
#define  MAX_API_NUM_R70   15
  3ds Max 7 SDK.
#define  MAX_API_NUM_R80_PRE_REL   16
  3ds Max 8 SDK pre-release.
#define  MAX_API_NUM_R80   17
  3ds Max 8 SDK.
#define  MAX_API_NUM_R90_ALPHA   18
  3ds Max 7 SDK pre-release.
#define  MAX_API_NUM_R90_BETA1   19
  3ds Max 9 Beta 1 SDK.
#define  MAX_API_NUM_R90_BETA3   20
  3ds Max 9 Beta 3 SDK.
#define  MAX_API_NUM_R90   21
  3ds Max 9 SDK. SDK incompatible with 3ds Max 8.
#define  MAX_API_NUM_R100_BETA5   22
  3ds Max 10 Beta 5 SDK.
#define  MAX_API_NUM_R100   23
  to 3ds Max 10 SDK. SDK compatible with 3ds Max 9.
#define  MAX_API_NUM_R110_ALPHA   24
  3ds Max 2009 Alpha SDK. SDK is incompatible with 3ds Max 10.
#define  MAX_API_NUM_R110   25
  3ds Max 2009 SDK. SDK is compatible with 3ds Max 2009 Alpha
#define  MAX_API_NUM_R120_ALPHA2   26
  3ds Max 2010 Alpha 2 SDK. SDK is incompatible with 3ds Max 2009.
#define  MAX_API_NUM_R120_ALPHA3   27
  3ds Max 2010 Alpha 3 SDK. SDK is incompatible with 3ds Max 2010 Alpha 2.
#define  MAX_API_NUM_R120_ALPHA4   28
  3ds Max 2010 Alpha 4 SDK. SDK is incompatible with 3ds Max 2010 Alpha 3.
#define  MAX_API_NUM_R120_BETA1   29
  3ds Max 2010 Beta 1 SDK. SDK is incompatible with 3ds Max 2010 Alpha 4.
#define  MAX_API_NUM_R120_BETA3   30
  3ds Max 2010 Beta 3 SDK. SDK is compatible with 3ds Max 2010 Beta 1 (Beta 2 was identical to Beta 1).
#define  MAX_API_NUM_R120_BETA4   31
  3ds Max 2010 Beta 4 SDK. SDK is compatible with 3ds Max 2010 Beta 3.
#define  MAX_API_NUM_R120_BETA5   32
  3ds Max 2010 Beta 5 SDK. SDK is compatible with 3ds Max 2010 Beta 4.
#define  MAX_API_NUM_R120   33
  3ds Max 2010 SDK. SDK is compatible with 3ds Max 2010 Beta 5.
#define  MAX_API_NUM_R130_BETA1   34
  3ds Max 2011 Beta 1 SDK. SDK is compatible with 3ds Max 2010 and 3ds Max 2011 Alpha builds except for new APIs.
#define  MAX_API_NUM_R130   35
  3ds Max 2011 SDK. SDK is compatible with 3ds Max 2010 and 3ds Max 2011 Alpha and Beta builds except for new APIs.
#define  MAX_API_NUM_R140_ALPHA1   36
  3ds Max R14 Alpha 1 SDK. SDK is incompatible with 3ds Max 2011.
#define  MAX_API_NUM_R140_BETA2   37
  3ds Max R14 Beta 2 SDK - incompatible with 3ds Max 2012 Beta 1 and earlier.
#define  MAX_API_NUM_R140   38
  3ds Max R14 SDK - incompatible with 3ds Max 2011, compatible with 3ds Max 2012 Beta 2 and later.
#define  MAX_API_NUM   MAX_API_NUM_R140
  The 3ds Max SDK current version number.
#define  MAX_SDK_REV   0
  Denotes the revision of the SDK for a given API.
#define  VERSION_3DSMAX   ((MAX_RELEASE<<16)+(MAX_API_NUM<<8)+MAX_SDK_REV)
  This is the value is required to be returned by a plug-in DLL's implementation of LibVersion().

Macros for extracting parts of VERSION_3DSMAX

#define  GET_MAX_RELEASE(x)   (((x)>>16)&0xffff)
#define  GET_MAX_API_NUM(x)   (((x)>>8)&0xff)
#define  GET_MAX_SDK_REV(x)   ((x)&0xff)
#define  GET_MAX_SDK_NUMREV(x)   ((x)&0xffff)

Define Documentation

#define MAX_RELEASE_UNSUPPORTED   (-1)

Represents an unsupported 3ds Max version.

#define MAX_RELEASE_R7   7000

3ds Max 7 release ID

#define MAX_RELEASE_R8_ALPHA   7800

3ds Max 8 alpha release ID

#define MAX_RELEASE_R8   8000

3ds Max 8 release id

#define MAX_RELEASE_R9_ALPHA   8900

3ds Max 9 alpha release id

#define MAX_RELEASE_R9_ALPHA2   8901

3ds Max 9 alpha 2 release id (file format change)

#define MAX_RELEASE_R9   9000

3ds Max 9 release id

#define MAX_RELEASE_R10_ALPHA   9900

3ds Max 10 alpha release id

#define MAX_RELEASE_R10   10000

3ds Max 10 release id

#define MAX_RELEASE_R11_ALPHA   10900

3ds Max 2009 alpha release id

#define MAX_RELEASE_R11   11000

3ds Max 2009 release id

#define MAX_RELEASE_R12_ALPHA   11900

3ds Max 2010 alpha release id

#define MAX_RELEASE_R12   12000

3ds Max 2010 release id

#define MAX_RELEASE_R13_ALPHA   12900

3ds Max 2011 alpha release id

#define MAX_RELEASE_R13   13000

3ds Max 2011 release id

#define MAX_RELEASE_R14_ALPHA   13900

3ds Max R14 Alpha, Beta release id

#define MAX_RELEASE_R14   14000

3ds Max R14 release id

#define MAX_RELEASE   MAX_RELEASE_R14

Identifier of the current 3ds Max release.

#define MAX_RELEASE_EXTERNAL   MAX_RELEASE

MAX_RELEASE_EXTERNAL is an alternative for MAX_RELEASE that can be used for UI when the internal version of the product is different from the branded version number.

MAX_RELEASE_EXTERNAL is defined in maxversion.h

#define MAX_API_NUM_R20   4
#define MAX_API_NUM_R25   5
#define MAX_API_NUM_R30   6
#define MAX_API_NUM_R31   7
#define MAX_API_NUM_R40   8
#define MAX_API_NUM_R42   9
#define MAX_API_NUM_R50   11
#define MAX_API_NUM_R60_PRE_REL   12

3ds Max 6 SDK pre-release.

#define MAX_API_NUM_R60   13
#define MAX_API_NUM_R70_PRE_REL   14

3ds Max 7 SDK pre-release.

#define MAX_API_NUM_R70   15
#define MAX_API_NUM_R80_PRE_REL   16

3ds Max 8 SDK pre-release.

#define MAX_API_NUM_R80   17
#define MAX_API_NUM_R90_ALPHA   18

3ds Max 7 SDK pre-release.

#define MAX_API_NUM_R90_BETA1   19

3ds Max 9 Beta 1 SDK.

#define MAX_API_NUM_R90_BETA3   20

3ds Max 9 Beta 3 SDK.

#define MAX_API_NUM_R90   21

3ds Max 9 SDK. SDK incompatible with 3ds Max 8.

#define MAX_API_NUM_R100_BETA5   22

3ds Max 10 Beta 5 SDK.

#define MAX_API_NUM_R100   23

to 3ds Max 10 SDK. SDK compatible with 3ds Max 9.

#define MAX_API_NUM_R110_ALPHA   24

3ds Max 2009 Alpha SDK. SDK is incompatible with 3ds Max 10.

#define MAX_API_NUM_R110   25

3ds Max 2009 SDK. SDK is compatible with 3ds Max 2009 Alpha

#define MAX_API_NUM_R120_ALPHA2   26

3ds Max 2010 Alpha 2 SDK. SDK is incompatible with 3ds Max 2009.

#define MAX_API_NUM_R120_ALPHA3   27

3ds Max 2010 Alpha 3 SDK. SDK is incompatible with 3ds Max 2010 Alpha 2.

#define MAX_API_NUM_R120_ALPHA4   28

3ds Max 2010 Alpha 4 SDK. SDK is incompatible with 3ds Max 2010 Alpha 3.

#define MAX_API_NUM_R120_BETA1   29

3ds Max 2010 Beta 1 SDK. SDK is incompatible with 3ds Max 2010 Alpha 4.

#define MAX_API_NUM_R120_BETA3   30

3ds Max 2010 Beta 3 SDK. SDK is compatible with 3ds Max 2010 Beta 1 (Beta 2 was identical to Beta 1).

#define MAX_API_NUM_R120_BETA4   31

3ds Max 2010 Beta 4 SDK. SDK is compatible with 3ds Max 2010 Beta 3.

#define MAX_API_NUM_R120_BETA5   32

3ds Max 2010 Beta 5 SDK. SDK is compatible with 3ds Max 2010 Beta 4.

#define MAX_API_NUM_R120   33

3ds Max 2010 SDK. SDK is compatible with 3ds Max 2010 Beta 5.

#define MAX_API_NUM_R130_BETA1   34

3ds Max 2011 Beta 1 SDK. SDK is compatible with 3ds Max 2010 and 3ds Max 2011 Alpha builds except for new APIs.

#define MAX_API_NUM_R130   35

3ds Max 2011 SDK. SDK is compatible with 3ds Max 2010 and 3ds Max 2011 Alpha and Beta builds except for new APIs.

#define MAX_API_NUM_R140_ALPHA1   36

3ds Max R14 Alpha 1 SDK. SDK is incompatible with 3ds Max 2011.

#define MAX_API_NUM_R140_BETA2   37

3ds Max R14 Beta 2 SDK - incompatible with 3ds Max 2012 Beta 1 and earlier.

#define MAX_API_NUM_R140   38

3ds Max R14 SDK - incompatible with 3ds Max 2011, compatible with 3ds Max 2012 Beta 2 and later.

#define MAX_API_NUM   MAX_API_NUM_R140

The 3ds Max SDK current version number.

It is used to verify a plug-in's binary compatibility with a specific version of 3ds Max. It is encoded into VERSION_3DSMAX which is the version number plug-in must return from their implementation of LibVersion(). The GET_MAX_API_NUM macro can be used to extract the SDK version number from a the library version (VERSION_3DSMAX).

#define MAX_SDK_REV   0

Denotes the revision of the SDK for a given API.

This is incremented. when the SDK functionality changes in some significant way (for instance a new GetProperty() query response is added), but the headers have not been changed.

#define VERSION_3DSMAX   ((MAX_RELEASE<<16)+(MAX_API_NUM<<8)+MAX_SDK_REV)

This is the value is required to be returned by a plug-in DLL's implementation of LibVersion().

#define GET_MAX_RELEASE (   x )    (((x)>>16)&0xffff)
#define GET_MAX_API_NUM (   x )    (((x)>>8)&0xff)
#define GET_MAX_SDK_REV (   x )    ((x)&0xff)
#define GET_MAX_SDK_NUMREV (   x )    ((x)&0xffff)

Enumeration Type Documentation


Function Documentation

CoreExport APPLICATION_ID GetAppID ( )

Returns the ApplicationID, either VIZ or MAX.

If a plugin is designed to work only in one product, then you could use this method in your IsPublic() call to switch between exposing the plug-in or not.