XPLM_API XPLMPluginID XPLMGetMyID(void);This routine returns the plugin ID of the calling plug-in. Call this to get your own ID.
XPLM_API long XPLMCountPlugins(void);This routine returns the total number of plug-ins that are loaded, both disabled and enabled.
XPLM_API XPLMPluginID XPLMGetNthPlugin( long inIndex);This routine returns the ID of a plug-in by index. Index is 0 based from 0 to XPLMCountPlugins-1, inclusive. Plugins may be returned in any arbitrary order.
XPLM_API XPLMPluginID XPLMFindPluginByPath( const char * inPath);This routine returns the plug-in ID of the plug-in whose file exists at the passed in absolute file system path. XPLM_NO_PLUGIN_ID is returned if the path does not point to a currently loaded plug-in.
XPLM_API XPLMPluginID XPLMFindPluginBySignature( const char * inSignature);This routine returns the plug-in ID of the plug-in whose signature matches what is passed in or XPLM_NO_PLUGIN_ID if no running plug-in has this signature. Signatures are the best way to identify another plug-in as they are independent of the file system path of a plug-in or the human-readable plug-in name, and should be unique for all plug-ins. Use this routine to locate another plugin that your plugin interoperates with
XPLM_API void XPLMGetPluginInfo( XPLMPluginID inPlugin, char * outName, /* Can be NULL */ char * outFilePath, /* Can be NULL */ char * outSignature, /* Can be NULL */ char * outDescription); /* Can be NULL */This routine returns information about a plug-in. Each parameter should be a pointer to a buffer of at least 256 characters, or NULL to not receive the information.
outName - the human-readable name of the plug-in. outFilePath - the absolute file path to the file that contains this plug-in. outSignature - a unique string that identifies this plug-in. outDescription - a human-readable description of this plug-in.
XPLM_API int XPLMIsPluginEnabled( XPLMPluginID inPluginID);Returns whether the specified plug-in is enabled for running.
XPLM_API int XPLMEnablePlugin( XPLMPluginID inPluginID);This routine enables a plug-in if it is not already enabled. It returns 1 if the plugin was enabled or successfully enables itself, 0 if it does not. Plugins may fail to enable (for example, if resources cannot be acquired) by returning 0 from their XPluginEnable callback.
XPLM_API void XPLMDisablePlugin( XPLMPluginID inPluginID);This routine disableds an enabled plug-in.
XPLM_API void XPLMReloadPlugins(void);This routine reloads all plug-ins. Once this routine is called and you return from the callback you were within (e.g. a menu select callback) you will receive your XPluginDisable and XPluginStop callbacks and your DLL will be unloaded, then the start process happens as if the sim was starting up.
Messages have two conceptual uses: notifications and commands. Commands are sent from one plugin to another to induce behavior; notifications are sent from one plugin to all others for informational purposes. It is important that commands and notifications not have the same values because this could cause a notification sent by one plugin to accidentally induce a command in another.
By convention, plugin-defined notifications should have the high bit set (e.g. be greater or equal to unsigned 0x8000000) while commands should have this bit be cleared.
The following messages are sent to your plugin by x-plane.
#define XPLM_MSG_PLANE_CRASHED 101This message is sent to your plugin whenever the user's plane crashes.
#define XPLM_MSG_PLANE_LOADED 102This message is sent to your plugin whenever a new plane is loaded. The parameter is the number of the plane being loaded; 0 indicates the user's plane.
#define XPLM_MSG_AIRPORT_LOADED 103This messages is called whenever the user's plane is positioned at a new airport.
#define XPLM_MSG_SCENERY_LOADED 104This message is sent whenever new scenery is loaded. Use datarefs to determine the new scenery files that were loaded.
#define XPLM_MSG_AIRPLANE_COUNT_CHANGED 105This message is sent whenever the user adjusts the number of X-Plane aircraft models. You must use XPLMCountPlanes to find out how many planes are now available. This message will only be sent in XP7 and higher because in XP6 the number of aircraft is not user-adjustable.
XPLM_API void XPLMSendMessageToPlugin( XPLMPluginID inPlugin, long inMessage, void * inParam);This function sends a message to another plug-in or X-Plane. Pass XPLM_NO_PLUGIN_ID to broadcast to all plug-ins. Only enabled plug-ins with a message receive function receive the message.
All rights reserved. See license.txt for usage.
X-Plane SDK Version: 1.0.2