Version Macros

Version Macros

Module description

3ds Max Release Identifiers

#define MAX_RELEASE_UNSUPPORTED   (-1)
 Represents an unsupported 3ds Max version. More...
 
#define MAX_RELEASE_R7   7000
 3ds Max 7 release ID More...
 
#define MAX_RELEASE_R8_ALPHA   7800
 3ds Max 8 alpha release ID More...
 
#define MAX_RELEASE_R8   8000
 3ds Max 8 release id More...
 
#define MAX_RELEASE_R9_ALPHA   8900
 3ds Max 9 alpha release id More...
 
#define MAX_RELEASE_R9_ALPHA2   8901
 3ds Max 9 alpha 2 release id (file format change) More...
 
#define MAX_RELEASE_R9   9000
 3ds Max 9 release id More...
 
#define MAX_RELEASE_R10_ALPHA   9900
 3ds Max 10 alpha release id More...
 
#define MAX_RELEASE_R10   10000
 3ds Max 10 release id More...
 
#define MAX_RELEASE_R11_ALPHA   10900
 3ds Max 2009 alpha release id More...
 
#define MAX_RELEASE_R11   11000
 3ds Max 2009 release id More...
 
#define MAX_RELEASE_R12_ALPHA   11900
 3ds Max 2010 alpha release id More...
 
#define MAX_RELEASE_R12   12000
 3ds Max 2010 release id More...
 
#define MAX_RELEASE_R13_ALPHA   12900
 3ds Max 2011 alpha release id More...
 
#define MAX_RELEASE_R13   13000
 3ds Max 2011 release id More...
 
#define MAX_RELEASE_R14_ALPHA   13900
 3ds Max R14 (2012) Alpha, Beta release id More...
 
#define MAX_RELEASE_R14   14000
 3ds Max R14 (2012) release id More...
 
#define MAX_RELEASE_R15_ALPHA_MBCS   14800
 3ds Max R15 (2013) pre-Alpha mbcs release id (SimCity main branch, mbcs build) More...
 
#define MAX_RELEASE_R15_ALPHA_UNICODE_MBCS   14850
 3ds Max R15 (2013) pre-Alpha mbcs build / unicode branch release id (SimCity Unicode branch, mbcs build) More...
 
#define MAX_RELEASE_R15_ALPHA_UNICODE_UNICODE   14900
 3ds Max R15 (2013) Alpha, Beta Unicode release id (SimCity Unicode branch, unicode build) More...
 
#define MAX_RELEASE_R15   15000
 3ds Max R15 (2013) release id More...
 
#define MAX_RELEASE_R16_ALPHA   15900
 3ds Max R16 (2014) Alpha release id More...
 
#define MAX_RELEASE_R16_ALPHA2   15901
 3ds Max R16 (2014) Alpha, Beta release id - new asset metadata stream More...
 
#define MAX_RELEASE_R16   16000
 3ds Max R16 (2014) release id More...
 
#define MAX_RELEASE_R17_ALPHA   16900
 3ds Max R17 (2015) Alpha release id More...
 
#define MAX_RELEASE_R17   17000
 3ds Max R17 (2015) release id More...
 
#define MAX_RELEASE_R18_PREVIEW   17900
 3ds Max R18 (2016) Preview release id More...
 
#define MAX_RELEASE_R18   18000
 3ds Max R18 (2016) release id More...
 
#define MAX_RELEASE_R19_PREVIEW   18900
 3ds Max R18 (2017) Preview release id More...
 
#define MAX_RELEASE   MAX_RELEASE_R19_PREVIEW
 Identifier of the current 3ds Max release. More...
 
#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. More...
 

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
  • 3ds Max R14 not binary compatible with previous releases
  • 3ds Max R15 not binary compatible with previous releases
  • 3ds Max R16 is binary compatible with 3ds Max R15
  • 3ds Max R17 not binary compatible with previous releases
  • 3ds Max R18 is binary compatible with 3ds Max R17
See also
VERSION_3DSMAX
LibVersion
enum  APPLICATION_ID { kAPP_MAX }
 Allows to identify the product based on an identifier. More...
 
CoreExport bool IsMaxVersionNewerOrSame (unsigned int maxRelease, unsigned int maxExt)
 Returns true if the current Max version is newer than maxRelease or the same but an extension equal or newer than the one specified as maxExt is present. More...
 
CoreExport unsigned int GetMaxExtensionVersion ()
 Returns the 3ds Max extension number. More...
 
MAX_DEPRECATED APPLICATION_ID GetAppID ()
 Returns the ApplicationID. More...
 
#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. More...
 
#define MAX_API_NUM_R60_PRE_REL   12
 3ds Max 6 SDK pre-release. More...
 
#define MAX_API_NUM_R60   13
 3ds Max 6 SDK. More...
 
#define MAX_API_NUM_R70_PRE_REL   14
 3ds Max 7 SDK pre-release. More...
 
#define MAX_API_NUM_R70   15
 3ds Max 7 SDK. More...
 
#define MAX_API_NUM_R80_PRE_REL   16
 3ds Max 8 SDK pre-release. More...
 
#define MAX_API_NUM_R80   17
 3ds Max 8 SDK. More...
 
#define MAX_API_NUM_R90_ALPHA   18
 3ds Max 7 SDK pre-release. More...
 
#define MAX_API_NUM_R90_BETA1   19
 3ds Max 9 Beta 1 SDK. More...
 
#define MAX_API_NUM_R90_BETA3   20
 3ds Max 9 Beta 3 SDK. More...
 
#define MAX_API_NUM_R90   21
 3ds Max 9 SDK. SDK incompatible with 3ds Max 8. More...
 
#define MAX_API_NUM_R100_BETA5   22
 3ds Max 10 Beta 5 SDK. More...
 
#define MAX_API_NUM_R100   23
 to 3ds Max 10 SDK. SDK compatible with 3ds Max 9. More...
 
#define MAX_API_NUM_R110_ALPHA   24
 3ds Max 2009 Alpha SDK. SDK is incompatible with 3ds Max 10. More...
 
#define MAX_API_NUM_R110   25
 3ds Max 2009 SDK. SDK is compatible with 3ds Max 2009 Alpha More...
 
#define MAX_API_NUM_R120_ALPHA2   26
 3ds Max 2010 Alpha 2 SDK. SDK is incompatible with 3ds Max 2009. More...
 
#define MAX_API_NUM_R120_ALPHA3   27
 3ds Max 2010 Alpha 3 SDK. SDK is incompatible with 3ds Max 2010 Alpha 2. More...
 
#define MAX_API_NUM_R120_ALPHA4   28
 3ds Max 2010 Alpha 4 SDK. SDK is incompatible with 3ds Max 2010 Alpha 3. More...
 
#define MAX_API_NUM_R120_BETA1   29
 3ds Max 2010 Beta 1 SDK. SDK is incompatible with 3ds Max 2010 Alpha 4. More...
 
#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). More...
 
#define MAX_API_NUM_R120_BETA4   31
 3ds Max 2010 Beta 4 SDK. SDK is compatible with 3ds Max 2010 Beta 3. More...
 
#define MAX_API_NUM_R120_BETA5   32
 3ds Max 2010 Beta 5 SDK. SDK is compatible with 3ds Max 2010 Beta 4. More...
 
#define MAX_API_NUM_R120   33
 3ds Max 2010 SDK. SDK is compatible with 3ds Max 2010 Beta 5. More...
 
#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. More...
 
#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. More...
 
#define MAX_API_NUM_R140_ALPHA1   36
 3ds Max R14 Alpha 1 SDK. SDK is incompatible with 3ds Max 2011. More...
 
#define MAX_API_NUM_R140_BETA2   37
 3ds Max R14 Beta 2 SDK - incompatible with 3ds Max 2012 Beta 1 and earlier. More...
 
#define MAX_API_NUM_R140   38
 3ds Max R14 SDK - incompatible with 3ds Max 2011, compatible with 3ds Max 2012 Beta 2 and later. More...
 
#define MAX_API_NUM_R150_ALPHA_MBCS   39
 3ds Max R15 pre-Alpha mbcs SDK - incompatible with 3ds Max 2012 and 3ds Max 2013 unicode builds More...
 
#define MAX_API_NUM_R150_ALPHA_UNICODE   40
 3ds Max R15 pre-Alpha unicode SDK - incompatible with 3ds Max 2012 and 3ds Max 2013 mbcs builds More...
 
#define MAX_API_NUM_R150   MAX_API_NUM_R150_ALPHA_UNICODE
 3ds Max R15 SDK - incompatible with 3ds Max 2012, remains the version number set for the pre-Alpha unicode SDK This was decided because it was not incremented at SDK freeze, despite breaking changes. More...
 
#define MAX_API_NUM_R160_ALPHA1   41
 3ds Max R16 Alpha 1 SDK. SDK is compatible with 3ds Max 2013 builds except for new APIs. More...
 
#define MAX_API_NUM_R160   42
 3ds Max R16 SDK. SDK is compatible with 3ds Max 2013 builds except for new APIs. More...
 
#define MAX_API_NUM_R170_PREVIEW   43
 3ds Max R17 (2015) Preview SDK; incompatible with 3ds Max R16 (2014). More...
 
#define MAX_API_NUM_R170   44
 3ds Max R17 (2015) SDK; incompatible with 3ds Max R16 (2014). More...
 
#define MAX_API_NUM_R180_PREVIEW   45
 3ds Max R18 (2016) Preview SDK; compatible with 3ds Max R17 (2015). More...
 
#define MAX_API_NUM_R180   46
 3ds Max R18 (2016) SDK; compatible with 3ds Max R17 (2015). More...
 
#define MAX_API_NUM_R190_PREVIEW   47
 3ds Max R19 (2017) Preview SDK; incompatible with 3ds Max R18 (2016). More...
 
#define MAX_API_NUM   MAX_API_NUM_R190_PREVIEW
 The 3ds Max SDK current version number. More...
 
#define MAX_SDK_REV_R190_PREVIEW   8
 
#define MAX_SDK_REV   MAX_SDK_REV_R190_PREVIEW
 Denotes the revision of the SDK for a given API. More...
 
#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(). More...
 

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)
 

Macro Definition 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 (2012) Alpha, Beta release id

#define MAX_RELEASE_R14   14000

3ds Max R14 (2012) release id

#define MAX_RELEASE_R15_ALPHA_MBCS   14800

3ds Max R15 (2013) pre-Alpha mbcs release id (SimCity main branch, mbcs build)

#define MAX_RELEASE_R15_ALPHA_UNICODE_MBCS   14850

3ds Max R15 (2013) pre-Alpha mbcs build / unicode branch release id (SimCity Unicode branch, mbcs build)

#define MAX_RELEASE_R15_ALPHA_UNICODE_UNICODE   14900

3ds Max R15 (2013) Alpha, Beta Unicode release id (SimCity Unicode branch, unicode build)

#define MAX_RELEASE_R15   15000

3ds Max R15 (2013) release id

#define MAX_RELEASE_R16_ALPHA   15900

3ds Max R16 (2014) Alpha release id

#define MAX_RELEASE_R16_ALPHA2   15901

3ds Max R16 (2014) Alpha, Beta release id - new asset metadata stream

#define MAX_RELEASE_R16   16000

3ds Max R16 (2014) release id

#define MAX_RELEASE_R17_ALPHA   16900

3ds Max R17 (2015) Alpha release id

#define MAX_RELEASE_R17   17000

3ds Max R17 (2015) release id

#define MAX_RELEASE_R18_PREVIEW   17900

3ds Max R18 (2016) Preview release id

#define MAX_RELEASE_R18   18000

3ds Max R18 (2016) release id

#define MAX_RELEASE_R19_PREVIEW   18900

3ds Max R18 (2017) Preview release id

#define MAX_RELEASE   MAX_RELEASE_R19_PREVIEW

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

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_R150_ALPHA_MBCS   39

3ds Max R15 pre-Alpha mbcs SDK - incompatible with 3ds Max 2012 and 3ds Max 2013 unicode builds

#define MAX_API_NUM_R150_ALPHA_UNICODE   40

3ds Max R15 pre-Alpha unicode SDK - incompatible with 3ds Max 2012 and 3ds Max 2013 mbcs builds

#define MAX_API_NUM_R150   MAX_API_NUM_R150_ALPHA_UNICODE

3ds Max R15 SDK - incompatible with 3ds Max 2012, remains the version number set for the pre-Alpha unicode SDK This was decided because it was not incremented at SDK freeze, despite breaking changes.

#define MAX_API_NUM_R160_ALPHA1   41

3ds Max R16 Alpha 1 SDK. SDK is compatible with 3ds Max 2013 builds except for new APIs.

#define MAX_API_NUM_R160   42

3ds Max R16 SDK. SDK is compatible with 3ds Max 2013 builds except for new APIs.

#define MAX_API_NUM_R170_PREVIEW   43

3ds Max R17 (2015) Preview SDK; incompatible with 3ds Max R16 (2014).

#define MAX_API_NUM_R170   44

3ds Max R17 (2015) SDK; incompatible with 3ds Max R16 (2014).

#define MAX_API_NUM_R180_PREVIEW   45

3ds Max R18 (2016) Preview SDK; compatible with 3ds Max R17 (2015).

#define MAX_API_NUM_R180   46

3ds Max R18 (2016) SDK; compatible with 3ds Max R17 (2015).

#define MAX_API_NUM_R190_PREVIEW   47

3ds Max R19 (2017) Preview SDK; incompatible with 3ds Max R18 (2016).

#define MAX_API_NUM   MAX_API_NUM_R190_PREVIEW

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_R190_PREVIEW   8
#define MAX_SDK_REV   MAX_SDK_REV_R190_PREVIEW

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

Allows to identify the product based on an identifier.

Deprecated:
As of 3ds Max 2016, there is only one product.
Enumerator
kAPP_MAX 
298 {kAPP_MAX};
Definition: plugapi.h:298

Function Documentation

CoreExport bool IsMaxVersionNewerOrSame ( unsigned int  maxRelease,
unsigned int  maxExt 
)

Returns true if the current Max version is newer than maxRelease or the same but an extension equal or newer than the one specified as maxExt is present.

Parameters
maxReleasethe version of max from the Version Macros Version Macros to check against
maxExtthe extension version to check against
CoreExport unsigned int GetMaxExtensionVersion ( )

Returns the 3ds Max extension number.

It returns 0 if there's no extension installed.

MAX_DEPRECATED APPLICATION_ID GetAppID ( )

Returns the ApplicationID.

Note: as of 3ds Max 2016, only a value of kAPP_MAX will be returned. Note: as of 3ds Max 2017, this method no longer has an implementation.