systemutilities.h File Reference

systemutilities.h File Reference
#include "strbasic.h"
#include "strclass.h"

Namespaces

 MaxSDK
 These classes let you define skin weighting using a voxel or height map based algorithm.
 
 MaxSDK::Util
 
 MaxSDK::Graphics
 

Macros

AppPaths

These are the ID's of max's system paths

#define APP_MAP_DIR   -1
 System directory that points to <max data>/maps. More...
 
#define APP_FOLIAGE_DIR   -2
 
#define APP_XREF_DIR   -3
 
#define APP_PLUGIN_INI_DIR   -4
 
#define APP_STDPLUGS_DIR   -5
 
#define APP_PLUGINS_DIR   -6
 
#define APP_FILELINK_DIR   -7
 
#define APP_CATALOGS_DIR   -8
 
#define APP_CUI_SCRIPTS_DIR   -9
 
#define APP_INT_OFFSET   0
 
#define APP_CUI_DIR   -10 + APP_INT_OFFSET
 
#define APP_FX_DIR   -11 + APP_INT_OFFSET
 Returns the hardware shader directory set in Configure Paths. More...
 
#define APP_CUI_WRITE_DIR   -12 + APP_INT_OFFSET
 
#define APP_MARKET_DEF_WRITE_DIR   -13 + APP_INT_OFFSET
 
#define APP_SYS_PATH_UI_LN_DIR   -14 + APP_INT_OFFSET
 
#define APP_LAST_SPEC_DIR   -14 + APP_INT_OFFSET
 

Functions

UtilExport bool IsDebugging ()
 Returns true if 3ds Max is running under a debugger. More...
 
UtilExport int NumberOfProcessors ()
 Returns the number of processors in the system. More...
 
UtilExport int GetScreenWidth ()
 Returns the width of the screen (including multiple monitors) More...
 
UtilExport int GetScreenHeight ()
 Returns the height of the screen (including multiple monitors) More...
 
UtilExport bool IsGetACPAsian ()
 Returns true if the current ANSI codepage is for an Asian language. More...
 
UtilExport void UseLanguagePackLocale (HMODULE hMyModule=reinterpret_cast< HMODULE >(&__ImageBase))
 Sets the locale for a DLL or thread to match that of the language pack being used at 3ds Max start up. More...
 
UtilExport WORD GetLanguageID ()
 Returns the identifier of the language used by 3ds Max. More...
 
UtilExport LANGID GetLocaleValue ()
 Returns the locale ID value that is being used by 3ds Max, as set by the language pack being used at runtime. More...
 
UtilExport const MCHARGetLocaleValueAsHexString ()
 Returns the locale ID value that is being used by 3ds Max, as set by the language pack being used at runtime. More...
 
UtilExport const MCHARGetLanguageTLA ()
 Returns the "three letter acronym" (TLA) of the language used by 3ds Max. More...
 
UtilExport const MCHARGetLanguagePackDirName ()
 Returns the two-two (eg "en-US" or "ja-JP") language pack directory for the language pack in use by 3ds Max. More...
 
UtilExport UINT CodePageForLanguage (LANGID)
 Returns the code page corresponding to the specified locale value. More...
 
UtilExport bool CopyToClipBoard (const MCHAR *text, HWND hwnd)
 copies a string to the system wide clipboard More...
 
UtilExport HRESULT UtilGetFolderPath (HWND hwndOwner, int nFolder, HANDLE hToken, DWORD dwFlags, LPTSTR pszPath)
 
UtilExport bool IsUsingProfileDirectories ()
 Returns a value indicating whether the application is configured to use User Profiles or not. More...
 
UtilExport bool IsUsingRoamingProfiles ()
 Returns a value indicating whether the application is configured to use romaing User Profiles or not. More...
 
UtilExport bool GetSpecDir (int index, const MCHAR *dirName, MCHAR *buf)
 This function is used to convert a path relative to the 3ds max install to an absolute path. More...
 
UtilExport bool TryCSIDLDir (int csidl, const MCHAR *dirName, MCHAR *buf)
 This is a helper for creating standard windows CSIDL directories. More...
 
UtilExport BOOL IsSSE ()
 
UtilExport bool ScanDirectoryTree (const MCHAR *treeroot, const MCHAR *filename, MSTR &targetpath)
 
UtilExport MSTR CaptureCallStack (int skipFirstNStackLevels=3, int maxStackLevels=-1)
 
UtilExport InterfaceUtilGetCOREInterface ()
 Access to core interfaces from maxutil - no need to link against core.dll. More...
 
UtilExport Interface7UtilGetCOREInterface7 ()
 
UtilExport Interface8UtilGetCOREInterface8 ()
 
UtilExport Interface9UtilGetCOREInterface9 ()
 
UtilExport Interface10UtilGetCOREInterface10 ()
 
UtilExport Interface11UtilGetCOREInterface11 ()
 
UtilExport Interface12UtilGetCOREInterface12 ()
 
UtilExport Interface13UtilGetCOREInterface13 ()
 
UtilExport Interface14UtilGetCOREInterface14 ()
 
UtilExport Interface15UtilGetCOREInterface15 ()
 
UtilExport Interface16UtilGetCOREInterface16 ()
 
UtilExport IPathConfigMgrExUtilGetPathConfigMgr ()
 
UtilExport MaxSDK::Graphics::IDisplayManagerGetIDisplayManager ()
 Helper function to access the IDisplayManager core interface. More...
 

Variables

IMAGE_DOS_HEADER __ImageBase
 

Macro Definition Documentation

#define APP_MAP_DIR   -1

System directory that points to <max data>/maps.

#define APP_FOLIAGE_DIR   -2
#define APP_XREF_DIR   -3
#define APP_PLUGIN_INI_DIR   -4
#define APP_STDPLUGS_DIR   -5
#define APP_PLUGINS_DIR   -6
#define APP_FILELINK_DIR   -7
#define APP_CATALOGS_DIR   -8
#define APP_CUI_SCRIPTS_DIR   -9
#define APP_INT_OFFSET   0
#define APP_CUI_DIR   -10 + APP_INT_OFFSET
#define APP_FX_DIR   -11 + APP_INT_OFFSET

Returns the hardware shader directory set in Configure Paths.

#define APP_CUI_WRITE_DIR   -12 + APP_INT_OFFSET
#define APP_MARKET_DEF_WRITE_DIR   -13 + APP_INT_OFFSET
#define APP_SYS_PATH_UI_LN_DIR   -14 + APP_INT_OFFSET
#define APP_LAST_SPEC_DIR   -14 + APP_INT_OFFSET

Function Documentation

UtilExport bool IsDebugging ( )

Returns true if 3ds Max is running under a debugger.

UtilExport int NumberOfProcessors ( )

Returns the number of processors in the system.

UtilExport int GetScreenWidth ( )

Returns the width of the screen (including multiple monitors)

UtilExport int GetScreenHeight ( )

Returns the height of the screen (including multiple monitors)

UtilExport bool IsGetACPAsian ( )

Returns true if the current ANSI codepage is for an Asian language.

UtilExport HRESULT UtilGetFolderPath ( HWND  hwndOwner,
int  nFolder,
HANDLE  hToken,
DWORD  dwFlags,
LPTSTR  pszPath 
)
UtilExport bool IsUsingProfileDirectories ( )

Returns a value indicating whether the application is configured to use User Profiles or not.

The application can be configured to use User Profiles.

Returns
true if the application uses User Profile directories
UtilExport bool IsUsingRoamingProfiles ( )

Returns a value indicating whether the application is configured to use romaing User Profiles or not.

The application can be configured to use roaming User Profiles. This value is dependent on whether the application uses User Profiles at all. Even if this returns true, if IsUsingProfileDirectories() returns false, then the application will default to the legacy path configuration locations under the application root install directory.

Returns
true if the application uses User Profile directories
UtilExport bool GetSpecDir ( int  index,
const MCHAR dirName,
MCHAR buf 
)

This function is used to convert a path relative to the 3ds max install to an absolute path.

This function is used to convert a path relative to the 3ds max install to an absolute path. For instance, this will yield the absolute path of the downloads directory:

1 GetSpecDir(APP_DOWNLOAD_DIR, _M("downloads"), buf);\n
Parameters
[in]index- The ID of the directory to return. This value should be one of AppPaths.
[in]dirName- The subdirectory to look for
[out]buf- The buffer to return the absolute path in. This buffer should be large enough to contain the maximum path length.
UtilExport bool TryCSIDLDir ( int  csidl,
const MCHAR dirName,
MCHAR buf 
)

This is a helper for creating standard windows CSIDL directories.

This function is a helper for creating standard windows CSIDL directories The list of possible root directories is shown in the windows header SHLOBJ.h. In particular, the TryCSIDLDir() function can be used to create CSIDL_LOCAL_APPDATA paths, where you can put application-specific data tailored to the current windows user.

Parameters
[in]csidl- The ID of the directory to return. Should be one of the windows CSIDL defines.
[in]dirName- specifies the relative pathname.
[out]buf- The buffer to return the absolute path in. This buffer should be large enough to contain the maximum path length.
UtilExport BOOL IsSSE ( )
UtilExport Interface* UtilGetCOREInterface ( )

Access to core interfaces from maxutil - no need to link against core.dll.

UtilExport Interface7* UtilGetCOREInterface7 ( )
UtilExport Interface8* UtilGetCOREInterface8 ( )
UtilExport Interface9* UtilGetCOREInterface9 ( )
UtilExport Interface10* UtilGetCOREInterface10 ( )
UtilExport Interface11* UtilGetCOREInterface11 ( )
UtilExport Interface12* UtilGetCOREInterface12 ( )
UtilExport Interface13* UtilGetCOREInterface13 ( )
UtilExport Interface14* UtilGetCOREInterface14 ( )
UtilExport Interface15* UtilGetCOREInterface15 ( )
UtilExport Interface16* UtilGetCOREInterface16 ( )
UtilExport IPathConfigMgrEx* UtilGetPathConfigMgr ( )

Variable Documentation

IMAGE_DOS_HEADER __ImageBase