Related Links
PDK Types

Overview

The window and camera services enables external applications to control basic camera functions as well as adding/removing post-process effects and sensor modes using window plug-ins.

Classes

struct  LLADegreesMeters
 
struct  PBHDegrees
 
struct  XYZMeters
 
struct  ScreenCoord
 
struct  ObjectLocalTransform
 
struct  ObjectWorldTransform
 
union  ARGBColor
 
struct  ARGBColor.__unnamed__
 
union  RenderFlags
 
struct  RenderFlags.__unnamed__
 
struct  BoundingBox2D
 
struct  TextDescription
 
union  TextDescription.__unnamed__
 Union that supports text description flags. More...
 
struct  TextDescription.__unnamed__.__unnamed__
 
class  BasicWaypoint
 BasicWaypoint. More...
 
class  EntityType
 
struct  CloudLayer
 
struct  WindAloftLayer
 
struct  TempLayer
 
struct  PressureInfo
 
struct  VisibilityLayer
 
class  IListBuilder< T >
 
class  CComPtrVecBuilder< T >
 
class  VecListBuilder< T >
 
class  NameListCopy
 
class  NameList
 
class  NameListC
 

Class Documentation

§ LLADegreesMeters

struct LLADegreesMeters

Struct that stores world position lat/lon in degrees, and altitude in meters.

Public Member Functions

 LLADegreesMeters () noexcept
 
 LLADegreesMeters (double latitude, double longitude, double altitude)
 

Public Attributes

double Latitude
 
double Longitude
 
double Altitude
 

Constructor & Destructor Documentation

§ LLADegreesMeters() [1/2]

LLADegreesMeters ( )
inlinenoexcept

§ LLADegreesMeters() [2/2]

LLADegreesMeters ( double  latitude,
double  longitude,
double  altitude 
)
inline
Parameters
latitudeLatitude in degrees
longitudelongitude in degrees
altitudealtitude in meters

Member Data Documentation

§ Altitude

double Altitude

§ Latitude

double Latitude

§ Longitude

double Longitude

§ PBHDegrees

struct PBHDegrees

Struct that stores orientation PBH (pitch, bank, heading) in degrees

Public Member Functions

 PBHDegrees () noexcept
 
 PBHDegrees (float pitch, float bank, float heading)
 

Public Attributes

float Pitch
 
float Bank
 
float Heading
 

Constructor & Destructor Documentation

§ PBHDegrees() [1/2]

PBHDegrees ( )
inlinenoexcept

§ PBHDegrees() [2/2]

PBHDegrees ( float  pitch,
float  bank,
float  heading 
)
inline
Parameters
pitchpitch in degrees
bankbank in degrees
headingheading in degrees

Member Data Documentation

§ Bank

float Bank

§ Heading

float Heading

§ Pitch

float Pitch

§ XYZMeters

struct XYZMeters

Public Member Functions

 XYZMeters () noexcept
 
 XYZMeters (float x, float y, float z)
 
XYZMeters operator- (const XYZMeters &rhs) const
 
XYZMetersoperator-= (const XYZMeters &rhs)
 
XYZMeters operator+ (const XYZMeters &rhs) const
 
XYZMetersoperator+= (const XYZMeters &rhs)
 
XYZMeters operator* (const XYZMeters &rhs) const
 
XYZMetersoperator*= (const XYZMeters &rhs)
 
XYZMeters operator* (const float &rhs) const
 
XYZMetersoperator*= (const float &rhs)
 
XYZMeters operator/ (const XYZMeters &rhs) const
 
XYZMetersoperator/= (const XYZMeters &rhs)
 
XYZMeters operator/ (const float &rhs) const
 
XYZMetersoperator/= (const float &rhs)
 
bool operator== (const XYZMeters &src) const
 
bool operator!= (const XYZMeters &src) const
 

Public Attributes

float X
 
float Y
 
float Z
 

Constructor & Destructor Documentation

§ XYZMeters() [1/2]

XYZMeters ( )
inlinenoexcept

§ XYZMeters() [2/2]

XYZMeters ( float  x,
float  y,
float  z 
)
inline
Parameters
xx offset in meters
yy offset in meters
zz offset in meters

Member Function Documentation

§ operator!=()

bool operator!= ( const XYZMeters src) const
inline

§ operator*() [1/2]

XYZMeters operator* ( const XYZMeters rhs) const
inline

§ operator*() [2/2]

XYZMeters operator* ( const float &  rhs) const
inline

§ operator*=() [1/2]

XYZMeters& operator*= ( const XYZMeters rhs)
inline

§ operator*=() [2/2]

XYZMeters& operator*= ( const float &  rhs)
inline

§ operator+()

XYZMeters operator+ ( const XYZMeters rhs) const
inline

§ operator+=()

XYZMeters& operator+= ( const XYZMeters rhs)
inline

§ operator-()

XYZMeters operator- ( const XYZMeters rhs) const
inline

§ operator-=()

XYZMeters& operator-= ( const XYZMeters rhs)
inline

§ operator/() [1/2]

XYZMeters operator/ ( const XYZMeters rhs) const
inline

§ operator/() [2/2]

XYZMeters operator/ ( const float &  rhs) const
inline

§ operator/=() [1/2]

XYZMeters& operator/= ( const XYZMeters rhs)
inline

§ operator/=() [2/2]

XYZMeters& operator/= ( const float &  rhs)
inline

§ operator==()

bool operator== ( const XYZMeters src) const
inline

Member Data Documentation

§ X

float X

§ Y

float Y

§ Z

float Z

§ ScreenCoord

struct ScreenCoord

Public Member Functions

 ScreenCoord () noexcept
 
 ScreenCoord (float x, float y, float dist)
 

Public Attributes

float XPixels
 
float YPixels
 
float DistanceMeters
 

Constructor & Destructor Documentation

§ ScreenCoord() [1/2]

ScreenCoord ( )
inlinenoexcept

§ ScreenCoord() [2/2]

ScreenCoord ( float  x,
float  y,
float  dist 
)
inline
Parameters
xx offset in meters
yy offset in meters
zz offset in meters

Member Data Documentation

§ DistanceMeters

float DistanceMeters

§ XPixels

float XPixels

§ YPixels

float YPixels

§ ObjectLocalTransform

struct ObjectLocalTransform

Defines a local transformation which includes a position and orientation offset

Public Member Functions

 ObjectLocalTransform () noexcept
 
 ObjectLocalTransform (float x, float y, float z, float pitch, float bank, float heading)
 

Public Attributes

XYZMeters XYZ
 
PBHDegrees PBH
 

Constructor & Destructor Documentation

§ ObjectLocalTransform() [1/2]

ObjectLocalTransform ( )
inlinenoexcept

§ ObjectLocalTransform() [2/2]

ObjectLocalTransform ( float  x,
float  y,
float  z,
float  pitch,
float  bank,
float  heading 
)
inline
Parameters
xx offset in meters
yy offset in meters
zz offset in meters
pitchpitch in degrees
bankbank in degrees
headingheading in degrees

Member Data Documentation

§ PBH

§ XYZ

XYZMeters XYZ

§ ObjectWorldTransform

struct ObjectWorldTransform

Defines a world transformation which includes an LLA for position and PBH for orientation. Altitude is in meters. All angle values are in degrees.

Public Member Functions

 ObjectWorldTransform () noexcept
 
 ObjectWorldTransform (double latitude, double longitude, double altitude, float pitch, float bank, float heading)
 

Public Attributes

LLADegreesMeters LLA
 
PBHDegrees PBH
 

Constructor & Destructor Documentation

§ ObjectWorldTransform() [1/2]

ObjectWorldTransform ( )
inlinenoexcept

§ ObjectWorldTransform() [2/2]

ObjectWorldTransform ( double  latitude,
double  longitude,
double  altitude,
float  pitch,
float  bank,
float  heading 
)
inline
Parameters
latitudeLatitude in degrees
longitudelongitude in degrees
altitudealtitude in meters
pitchpitch in degrees
bankbank in degrees
headingheading in degrees

Member Data Documentation

§ LLA

§ PBH

§ ARGBColor

union ARGBColor

Union that stores color in ARGB 8 bit format

Public Member Functions

 ARGBColor () noexcept
 
 ARGBColor (unsigned int alpha, unsigned int red, unsigned int green, unsigned int blue)
 

Public Attributes

unsigned int Color
 
struct {
unsigned int Blue: 8
 
unsigned int Green: 8
 
unsigned int Red: 8
 
unsigned int Alpha: 8
 
}; 
 

Constructor & Destructor Documentation

§ ARGBColor() [1/2]

ARGBColor ( )
inlinenoexcept

§ ARGBColor() [2/2]

ARGBColor ( unsigned int  alpha,
unsigned int  red,
unsigned int  green,
unsigned int  blue 
)
inline
Parameters
alphaAlpha component of the color
redRed component of the color
greenGreen component of the color
blueBlue component of the color

Member Data Documentation

§ @3

struct { ... }

§ Color

unsigned int Color

§ ARGBColor.__unnamed__

struct ARGBColor.__unnamed__
Class Members
unsigned int Alpha: 8
unsigned int Blue: 8
unsigned int Green: 8
unsigned int Red: 8

§ RenderFlags

union RenderFlags

Union that stores RenderFlags to control drawing

Public Member Functions

 RenderFlags () noexcept
 
 RenderFlags (unsigned int flags)
 

Public Attributes

unsigned int Flags
 
struct {
bool DrawFromBase: 1
 
bool DrawWithVC: 1
 
bool DepthReadDisable: 1
 
bool AlphaWriteEnable: 1
 
bool ActAsStencil: 1
 
}; 
 

Constructor & Destructor Documentation

§ RenderFlags() [1/2]

RenderFlags ( )
inlinenoexcept

§ RenderFlags() [2/2]

RenderFlags ( unsigned int  flags)
inline

Member Data Documentation

§ @5

struct { ... }

§ Flags

unsigned int Flags

§ RenderFlags.__unnamed__

struct RenderFlags.__unnamed__
Class Members
bool ActAsStencil: 1
bool AlphaWriteEnable: 1
bool DepthReadDisable: 1
bool DrawFromBase: 1
bool DrawWithVC: 1

§ BoundingBox2D

struct BoundingBox2D

Describes a 2D bounding box in pixels.

Public Member Functions

 BoundingBox2D ()
 

Public Attributes

int left
 
int top
 
int right
 
int bottom
 

Constructor & Destructor Documentation

§ BoundingBox2D()

BoundingBox2D ( )
inline

Member Data Documentation

§ bottom

int bottom

§ left

int left

§ right

int right

§ top

int top

§ TextDescription

struct TextDescription

Describes how 2D and 3D text should be drawn to the screen.

Public Member Functions

 TextDescription ()
 

Public Attributes

TEXT_FONT Font
 
HORIZONTAL_ALIGNMENT HorizontalAlignment
 
VERTICAL_ALIGNMENT VerticalAlignment
 
BoundingBox2D BoundingBox
 
union {
   struct {
bool WorldSpace: 1
 
bool DisplayOnTop: 1
 
bool DropShadow: 1
 
bool CalculateBox: 1
 
bool NoPostProcess: 1
 
   } 
 
unsigned int Flags
 
}; 
 Union that supports text description flags. More...
 

Constructor & Destructor Documentation

§ TextDescription()

TextDescription ( )
inline

Member Data Documentation

§ @7

union { ... }

Union that supports text description flags.

§ BoundingBox

BoundingBox2D BoundingBox

The size of the text's bounding box.

Remarks
Negative values are currently not supported.

§ Font

TEXT_FONT Font

The font type.

§ HorizontalAlignment

HORIZONTAL_ALIGNMENT HorizontalAlignment

Alignment in the horizontal direction.

§ VerticalAlignment

VERTICAL_ALIGNMENT VerticalAlignment

Alignment in the vertical direction.

§ TextDescription.__unnamed__

union TextDescription.__unnamed__

Union that supports text description flags.

Class Members
__unnamed__ __unnamed__
unsigned int Flags

§ TextDescription.__unnamed__.__unnamed__

struct TextDescription.__unnamed__.__unnamed__
Class Members
bool CalculateBox: 1

True if the bounding box should be calculated based on the given string, false if the user-defined bounding box should be used.

bool DisplayOnTop: 1

True if text is to be rendered on top of the scene.

bool DropShadow: 1

True if a drop shadow should be drawn with the text.

bool NoPostProcess: 1

Prevents post-process from being applied to the text.

bool WorldSpace: 1

True if the text box should be draw in world space, false if it should be drawn in screen space.

§ P3D::BasicWaypoint

class P3D::BasicWaypoint
Class Members
double dHeading
DXYZ vLonAltLat

§ P3D::EntityType

class P3D::EntityType

Public Member Functions

 EntityType () noexcept
 
unsigned char GetKind () const
 
void SetKind (unsigned char byKind)
 
unsigned char GetDomain () const
 
void SetDomain (unsigned char byDomain)
 
unsigned short GetCountry () const
 
void SetCountry (unsigned short usCountry)
 
unsigned char GetCategory () const
 
void SetCategory (unsigned char byCategory)
 
unsigned char GetSubcategory () const
 
void SetSubcategory (unsigned char bySubcategory)
 
unsigned char GetSpecific () const
 
void SetSpecific (unsigned char bySpecific)
 
unsigned char GetExtra () const
 
void SetExtra (unsigned char byExtra)
 

Private Attributes

unsigned char m_byKind
 
unsigned char m_byDomain
 
unsigned short m_usCountry
 
unsigned char m_byCategory
 
unsigned char m_bySubcategory
 
unsigned char m_bySpecific
 
unsigned char m_byExtra
 

Constructor & Destructor Documentation

§ EntityType()

EntityType ( )
inlinenoexcept

Member Function Documentation

§ GetCategory()

unsigned char GetCategory ( ) const
inline

Gets DIS entity category

§ GetCountry()

unsigned short GetCountry ( ) const
inline

Gets DIS entity country

§ GetDomain()

unsigned char GetDomain ( ) const
inline

Gets DIS entity domain

§ GetExtra()

unsigned char GetExtra ( ) const
inline

Gets DIS entity extra

§ GetKind()

unsigned char GetKind ( ) const
inline

Gets DIS entity kind

§ GetSpecific()

unsigned char GetSpecific ( ) const
inline

Gets DIS entity specific

§ GetSubcategory()

unsigned char GetSubcategory ( ) const
inline

Gets DIS entity subcategory

§ SetCategory()

void SetCategory ( unsigned char  byCategory)
inline

Sets DIS entity category

§ SetCountry()

void SetCountry ( unsigned short  usCountry)
inline

Sets DIS entity country

§ SetDomain()

void SetDomain ( unsigned char  byDomain)
inline

Sets DIS entity domain

§ SetExtra()

void SetExtra ( unsigned char  byExtra)
inline

Sets DIS entity extra

§ SetKind()

void SetKind ( unsigned char  byKind)
inline

Sets DIS entity kind

§ SetSpecific()

void SetSpecific ( unsigned char  bySpecific)
inline

Sets DIS entity specific

§ SetSubcategory()

void SetSubcategory ( unsigned char  bySubcategory)
inline

Sets DIS entity subcategory

Member Data Documentation

§ m_byCategory

unsigned char m_byCategory
private

DIS entity category

§ m_byDomain

unsigned char m_byDomain
private

DIS entity domain

§ m_byExtra

unsigned char m_byExtra
private

DIS entity extra

§ m_byKind

unsigned char m_byKind
private

DIS entity kind

§ m_bySpecific

unsigned char m_bySpecific
private

DIS entity specific

§ m_bySubcategory

unsigned char m_bySubcategory
private

DIS entity subcategory

§ m_usCountry

unsigned short m_usCountry
private

DIS entity country

§ P3D::CloudLayer

struct P3D::CloudLayer
Class Members
CLOUD_COVER eCloudCover
CLOUD_TOP eCloudTop
CLOUD_TYPE eCloudType
ICINGRATE eIcingRate
PRECIPRATE ePrecipRate
PRECIPTYPE ePrecipType
TURBULANCE eTurbulance
float fCloudBase
float fCloudDeviation
float fCloudTops
float fPrecipBase

§ P3D::WindAloftLayer

struct P3D::WindAloftLayer
Class Members
TURBULANCE eTurb
WINDSHEAR eWindShear
float fAlt
float fDirection
float fGusts
float fSpeed
float fVariance

§ P3D::TempLayer

struct P3D::TempLayer
Class Members
float fAlt
float fDewPoint
float fRange
float fTemp

§ P3D::PressureInfo

struct P3D::PressureInfo
Class Members
float fPressureAtAlt
float fPressureAtSL
float fRange

§ P3D::VisibilityLayer

struct P3D::VisibilityLayer
Class Members
float fBase
float fTops
float fVis

§ P3D::IListBuilder

class P3D::IListBuilder

template<class T>
class P3D::IListBuilder< T >

Templated List Building Interface used by Prepar3D to add requested items to a list.

Inherited by CComPtrVecBuilder< T >, and VecListBuilder< T >.

Public Member Functions

virtual bool AddItem (T *item) override
 
virtual void BeginBuilding () override
 
virtual void EndBuilding ()
 

Member Function Documentation

§ AddItem()

virtual bool AddItem ( T *  item)
pure virtual

Called for each item until all items have been called or until AddItem returns false.

Returns
true to continue adding items or false to stop

Implemented in NameListC, NameList, NameListCopy, VecListBuilder< T >, and CComPtrVecBuilder< T >.

§ BeginBuilding()

virtual void BeginBuilding ( )
pure virtual

Called before any items are added.

Implemented in NameListC, NameList, NameListCopy, VecListBuilder< T >, and CComPtrVecBuilder< T >.

§ EndBuilding()

virtual void EndBuilding ( )
inlinevirtual

Called after all items have been added.

§ P3D::CComPtrVecBuilder

class P3D::CComPtrVecBuilder

template<class T>
class P3D::CComPtrVecBuilder< T >

List builder implementation that creates a standard vector of CComPtrs of a templated type.

Inherits IListBuilder< T >.

Public Member Functions

virtual bool AddItem (T *item) override
 
virtual void BeginBuilding () override
 
- Public Member Functions inherited from IListBuilder< T >
virtual void EndBuilding ()
 

Public Attributes

std::vector< CComPtr< T > > Items
 

Member Function Documentation

§ AddItem()

virtual bool AddItem ( T *  item)
inlineoverridevirtual

Called for each item until all items have been called or until AddItem returns false.

Returns
true to continue adding items or false to stop

Implements IListBuilder< T >.

§ BeginBuilding()

virtual void BeginBuilding ( )
inlineoverridevirtual

Called before any items are added.

Implements IListBuilder< T >.

Member Data Documentation

§ Items

std::vector<CComPtr<T> > Items

§ P3D::VecListBuilder

class P3D::VecListBuilder

template<class T>
class P3D::VecListBuilder< T >

List builder implementation that creates a standard vector of objects of a templated type.

Inherits IListBuilder< T >.

Public Member Functions

virtual bool AddItem (T *item) override
 
virtual void BeginBuilding () override
 
- Public Member Functions inherited from IListBuilder< T >
virtual void EndBuilding ()
 

Public Attributes

std::vector< T > Items
 

Member Function Documentation

§ AddItem()

virtual bool AddItem ( T *  item)
inlineoverridevirtual

Called for each item until all items have been called or until AddItem returns false.

Returns
true to continue adding items or false to stop

Implements IListBuilder< T >.

§ BeginBuilding()

virtual void BeginBuilding ( )
inlineoverridevirtual

Called before any items are added.

Implements IListBuilder< T >.

Member Data Documentation

§ Items

std::vector<T> Items

§ P3D::NameListCopy

class P3D::NameListCopy

IListBuilder that stores names in a string vector. The contents of each name are copied into the string so it is safe to store this list for later use.

Inherits IListBuilder< const WCHAR >.

Public Member Functions

virtual bool AddItem (const WCHAR *item) override
 
virtual void BeginBuilding () override
 
- Public Member Functions inherited from IListBuilder< const WCHAR >
virtual void EndBuilding ()
 

Public Attributes

std::vector< std::basic_string< WCHAR > > Items
 

Member Function Documentation

§ AddItem()

virtual bool AddItem ( const WCHAR *  item)
inlineoverridevirtual

Called for each item until all items have been called or until AddItem returns false.

Returns
true to continue adding items or false to stop

Implements IListBuilder< const WCHAR >.

§ BeginBuilding()

virtual void BeginBuilding ( )
inlineoverridevirtual

Called before any items are added.

Implements IListBuilder< const WCHAR >.

Member Data Documentation

§ Items

std::vector<std::basic_string<WCHAR> > Items

Vector of strings that can be used to access the name list once it has been built.

§ P3D::NameList

class P3D::NameList

IListBuilder that stores names in a temporary const char* vector. The contents of each string are not copied, so this type is only safe to use within the scope of the current function.

Inherits IListBuilder< const WCHAR >.

Public Member Functions

virtual bool AddItem (const WCHAR *item) override
 
virtual void BeginBuilding () override
 
- Public Member Functions inherited from IListBuilder< const WCHAR >
virtual void EndBuilding ()
 

Public Attributes

std::vector< const WCHAR * > Items
 

Member Function Documentation

§ AddItem()

virtual bool AddItem ( const WCHAR *  item)
inlineoverridevirtual

Called for each item until all items have been called or until AddItem returns false.

Returns
true to continue adding items or false to stop

Implements IListBuilder< const WCHAR >.

§ BeginBuilding()

virtual void BeginBuilding ( )
inlineoverridevirtual

Called before any items are added.

Implements IListBuilder< const WCHAR >.

Member Data Documentation

§ Items

std::vector<const WCHAR*> Items

const char* vector that can be used to access the name list once it has been built.

§ P3D::NameListC

class P3D::NameListC

IListBuilder that stores names in a preallocated fixed size array.

Inherits IListBuilder< const WCHAR >.

Public Member Functions

 NameListC (const WCHAR **names, int &count, bool bMakeCopy=false)
 
virtual bool AddItem (const WCHAR *item) override
 
virtual void BeginBuilding () override
 
- Public Member Functions inherited from IListBuilder< const WCHAR >
virtual void EndBuilding ()
 

Private Attributes

const WCHAR ** m_aNames
 
int m_iMaxCount
 
int & m_iCount
 
bool m_bMakeCopy
 

Constructor & Destructor Documentation

§ NameListC()

NameListC ( const WCHAR **  names,
int &  count,
bool  bMakeCopy = false 
)
inline

Constructor which takes preallocated fixed size array to hold this lists data.

Parameters
namespointer to preallocated const char* array
countsize of preallocated array. Reference value that will be changed to hold the count of items added to the list.

Member Function Documentation

§ AddItem()

virtual bool AddItem ( const WCHAR *  item)
inlineoverridevirtual

Called for each item until all items have been called or until AddItem returns false.

Returns
true to continue adding items or false to stop

Implements IListBuilder< const WCHAR >.

§ BeginBuilding()

virtual void BeginBuilding ( )
inlineoverridevirtual

Called before any items are added.

Implements IListBuilder< const WCHAR >.

Member Data Documentation

§ m_aNames

const WCHAR** m_aNames
private

§ m_bMakeCopy

bool m_bMakeCopy
private

§ m_iCount

int& m_iCount
private

§ m_iMaxCount

int m_iMaxCount
private

Macros

#define DXYZ   P3DDXYZ
 Simple vector structures for passing between P3D host and implementation. More...
 
#define FXYZ   P3DFXYZ
 
#define DEFAULT_REFCOUNT_INLINE_IMPL()
 
#define DECLARE_IUNKNOWN_WITH_INLINE_REFCOUNT_IMPL()
 
#define DEFAULT_IUNKNOWN_QI_INLINE_IMPL(IClassName, IID_IClassName)
 
#define NO_COPY_IUNKNOWN_IMPL(IClassName)
 

Typedefs

typedef HRESULT(STDMETHODCALLTYPE * PSimCreateFunc) (__in __notnull IBaseObjectV400 *, __out __notnull ISimObject **)
 
typedef HRESULT(STDMETHODCALLTYPE * PSaveLoadCallback) (__in LPCWSTR pszSection, __in unsigned int uInstance, __in LPCWSTR pszKeyword, __inout void *pvVal, __in const SAVED_DATA_TYPE eDataType)
 
typedef void(STDMETHODCALLTYPE * PNewScenarioNotify) (BOOL bOnSave)
 
typedef HRESULT(STDMETHODCALLTYPE * PPropertyCallback) (__in const ISimObject &Sim, __out double &dProperty, __in int iIndex)
 Double property callback. More...
 
typedef HRESULT(STDMETHODCALLTYPE * PPropertyVectorCallback) (__in const ISimObject &Sim, __out DXYZ &vProperty, __in int iIndex)
 Vector (double x,y,z) property callback. More...
 
typedef HRESULT(STDMETHODCALLTYPE * PPropertyStringCallback) (__in const ISimObject &Sim, __out LPWSTR pszProperty, __in UINT uStringLength, __in int iIndex)
 String property callback. More...
 
typedef HRESULT(STDMETHODCALLTYPE * PPropertyCallbackWithSubString) (__in const ISimObject &Sim, __out double &dProperty, __in LPCWSTR pszSecondarySubstring, __in int iIndex)
 Double property callback (with secondary string input) More...
 
typedef HRESULT(STDMETHODCALLTYPE * PEventCallback) (__in ISimObject &Sim, __in double dProperty, __in int iIndex)
 Event input callback. More...
 
typedef HRESULT(STDMETHODCALLTYPE * PEventVectorCallback) (__in ISimObject &Sim, __in const DXYZ &vProperty, __in int iIndex)
 Event input callback. More...
 
typedef HRESULT(STDMETHODCALLTYPE * PEventStringCallback) (__in ISimObject &Sim, __in LPCWSTR pszProperty, __in int iIndex)
 Event input callback. More...
 
typedef HRESULT(STDMETHODCALLTYPE * PEventCallbackWithSubString) (__in ISimObject &Sim, __in double dProperty, __in LPCWSTR pszSecondarySecondarySubstring, __in int iIndex)
 Event input callback for double (with secondary string input) More...
 
typedef HRESULT(STDMETHODCALLTYPE * POnObjectCreateCallback) (__in IUnknown &Obj)
 Register callback on object creation. This could be a simobject or a library object. More...
 
typedef HRESULT(STDMETHODCALLTYPE * POnObjectRemoveCallback) (__in IUnknown &Obj)
 Register callback on object removal. This could be a simobject or a library object. More...
 
typedef HRESULT(STDMETHODCALLTYPE * POnUserObjectChangedCallback) (__in IUnknown &NewObj, __in IUnknown &OldObj)
 Register callback on user object changing from one user to another (during runtime, not scenario load or vehicle change via UI) More...
 
using INameList = IListBuilder< const WCHAR >
 

Enumerations

enum  TEXT_FONT {
  TEXT_FONT_DEFAULT, TEXT_FONT_SMALL, TEXT_FONT_SMALL_BOLD, TEXT_FONT_MEDIUM_BOLD,
  TEXT_FONT_LARGE_BOLD, TEXT_FONT_XLARGE_BOLD
}
 Text font type enum. More...
 
enum  HORIZONTAL_ALIGNMENT { HORIZONTAL_ALIGNMENT_LEFT, HORIZONTAL_ALIGNMENT_CENTER, HORIZONTAL_ALIGNMENT_RIGHT }
 Text horizontal alignment enum. More...
 
enum  VERTICAL_ALIGNMENT { VERTICAL_ALIGNMENT_TOP, VERTICAL_ALIGNMENT_CENTER, VERTICAL_ALIGNMENT_BOTTOM }
 Text vertical alignment enum. More...
 
enum  COLLISIONTYPE {
  COLLISIONTYPE_NONE, COLLISIONTYPE_SIMOBJECT, COLLISIONTYPE_BUILDING, COLLISIONTYPE_TERRAIN,
  COLLISIONTYPE_OTHER
}
 
enum  EVENTTYPE {
  EVENTTYPE_NORMAL, EVENTTYPE_AXIS, EVENTTYPE_POV, EVENTTYPE_NORMAL_NATIVE_OVERRIDE,
  EVENTTYPE_AXIS_NATIVE_OVERRIDE, EVENTTYPE_POV_NATIVE_OVERRIDE, EVENTTYPE_NOT_MAPPABLE
}
 Type of keyboard or joystick mapping associated with an event being registered. More...
 
enum  PROPERTY_TYPE {
  PROPERTY_TYPE_EVENT, PROPERTY_TYPE_EVENT_WITH_SUBSTRING_INPUT, PROPERTY_TYPE_EVENT_VECTOR, PROPERTY_TYPE_EVENT_STRING,
  PROPERTY_TYPE_DOUBLE, PROPERTY_TYPE_DOUBLE_WITH_SUBSTRING_INPUT, PROPERTY_TYPE_STRING, PROPERTY_TYPE_VECTOR,
  NUM_PROPERTY_TYPES
}
 Types of properties. More...
 
enum  SAVED_DATA_TYPE { SAVED_DATA_TYPE_DOUBLE, SAVED_DATA_TYPE_STRING, NUM_SAVED_DATA_TYPES }
 Types of data saved via the PSaveLoadCallback. More...
 
enum  NET_MODE_TYPE { NET_MODE_TYPE_NORMAL, NET_MODE_TYPE_REMOTE, NET_MODE_TYPE_MASTER, NET_MODE_TYPE_SLAVE }
 Types of network modes for a given object. More...
 
enum  INTEROGATIONTYPE { INTEROGATIONTYPE_NONE = 0, INTEROGATIONTYPE_TERRAIN = 1, INTEROGATIONTYPE_OBJECTS = 2 }
 Flag based types of ray trace interogation. More...
 
enum  TIMEOFDAY {
  TIMEOFDAY_INVALID = -1, TIMEOFDAY_DAWN, TIMEOFDAY_DAY, TIMEOFDAY_DUSK,
  TIMEOFDAY_NIGHT, NUM_PERIODS_OF_DAY
}
 General time of day. More...
 
enum  TIMEREF { TIMEREF_INVALID = -1, TIMEREF_LOCAL, TIMEREF_ZULU, NUM_TIMEREF }
 Used in time queries to reference Zulu (UTC) or Local time. More...
 
enum  UNITMODE {
  UNITMODE_SLEEP, UNITMODE_ZOMBIE, UNITMODE_WAYPOINT, UNITMODE_TAKEOFF,
  UNITMODE_LANDING, UNITMODE_TAXI, UNITMODE_WORKING, UNITMODE_WAITING
}
 AI Unit modes. More...
 
enum  WEATHER_MODE { WEATHER_MODE_THEME, WEATHER_MODE_CUSTOM, WEATHER_MODE_GLOBAL }
 
enum  THERMAL_VISUAL_TYPE { THERMAL_VISUAL_NONE, THERMAL_VISUAL_NATURAL, THERMAL_VISUAL_SCHEMATIC, THERMAL_VISUAL_MAX = THERMAL_VISUAL_SCHEMATIC }
 
enum  CLOUD_COVERAGE_DENSITY {
  CLOUD_COVERAGE_DENSITY_MIN = 5, CLOUD_COVERAGE_DENSITY_LOW = CLOUD_COVERAGE_DENSITY_MIN, CLOUD_COVERAGE_DENSITY_MEDIUM, CLOUD_COVERAGE_DENSITY_HIGH,
  CLOUD_COVERAGE_DENSITY_MAXIMUM, CLOUD_COVERAGE_DENSITY_MAX = CLOUD_COVERAGE_DENSITY_MAXIMUM
}
 
enum  CLOUD_DRAW_DISTANCE {
  CLOUD_DRAW_DISTANCE_MIN = 3, CLOUD_DRAW_DISTANCE_60_MILES = CLOUD_DRAW_DISTANCE_MIN, CLOUD_DRAW_DISTANCE_70_MILES, CLOUD_DRAW_DISTANCE_80_MILES,
  CLOUD_DRAW_DISTANCE_90_MILES, CLOUD_DRAW_DISTANCE_10_MILES, CLOUD_DRAW_DISTANCE_110_MILES, CLOUD_DRAW_DISTANCE_MAX = CLOUD_DRAW_DISTANCE_110_MILES
}
 
enum  CLOUD_TYPE {
  CLOUD_NONE, CLOUD_CIRRUS, CLOUD_STRATUS, CLOUD_CUMULUS,
  CLOUD_CUMULONIMBUS, CLOUD_VISIBILITY_LAYER, CLOUD_THUNDERSTORM, CLOUD_MAX
}
 
enum  CLOUD_COVER {
  CLOUD_CLEAR, CLOUD_FEW_1_8, CLOUD_FEW_2_8, CLOUD_SCATTERED_3_8,
  CLOUD_SCATTERED_4_8, CLOUD_BROKEN_5_8, CLOUD_BROKEN_6_8, CLOUD_BROKEN_7_8,
  CLOUD_OVERCAST_8_8, CLOUD_C_MAX
}
 
enum  CLOUD_TOP { CLOUDTOP_FLAT, CLOUDTOP_ROUND, CLOUDTOP_ANVIL, CLOUDTOP_TOP_MAX }
 
enum  TURBULANCE {
  TURB_NONE, TURB_LIGHT, TURB_MODERATE, TURB_HEAVY,
  TURB_SEVERE, TURB_MAX
}
 
enum  PRECIPTYPE { PRECIP_NONE, PRECIP_RAIN, PRECIP_SNOW, PRECIP_MAX }
 
enum  PRECIPRATE {
  PRECIPRATE_VLOW, PRECIPRATE_LOW, PRECIPRATE_MODERATE, PRECIPRATE_HIGH,
  PRECIPRATE_VHIGH, PRECIPRATE_MAX
}
 
enum  ICINGRATE {
  ICINGRATE_NONE, ICINGRATE_TRACE, ICINGRATE_LIGHT, ICINGRATE_MODERATE,
  ICINGRATE_SEVERE, ICINGRATE_MAX
}
 
enum  WINDSHEAR {
  WINDSHEAR_GRADUAL, WINDSHEAR_MODERATE, WINDSHEAR_STEEP, WINDSHEAR_INSTANTANEOUS,
  WINDSHEAR_MAX
}
 

Macro Definition Documentation

§ DECLARE_IUNKNOWN_WITH_INLINE_REFCOUNT_IMPL

#define DECLARE_IUNKNOWN_WITH_INLINE_REFCOUNT_IMPL ( )
Value:
public:\
DEFAULT_REFCOUNT_INLINE_IMPL()\
virtual HRESULT STDMETHODCALLTYPE QueryInterface(__in REFIID riid, __out void **ppvObject);\

§ DEFAULT_IUNKNOWN_QI_INLINE_IMPL

#define DEFAULT_IUNKNOWN_QI_INLINE_IMPL (   IClassName,
  IID_IClassName 
)
Value:
STDMETHODIMP QueryInterface(REFIID riid, PVOID* ppv)\
{\
HRESULT hr = E_NOINTERFACE;\
\
*ppv = NULL;\
\
if (IsEqualIID(riid , IID_IClassName))\
{\
*ppv = static_cast<IClassName*>(this);\
}\
else if (IsEqualIID(riid , IID_IUnknown))\
{\
*ppv = static_cast<IUnknown*>(this);\
}\
\
if (*ppv)\
{\
hr = S_OK;\
AddRef();\
}\
\
return hr;\
}\
void * PVOID
Definition: ISimPropertyService.h:17
#define NULL
Definition: gauges.h:67

§ DEFAULT_REFCOUNT_INLINE_IMPL

#define DEFAULT_REFCOUNT_INLINE_IMPL ( )
Value:
public:\
volatile LONG m_RefCount;\
virtual ULONG STDMETHODCALLTYPE AddRef() {return InterlockedIncrement(&m_RefCount) ;}\
virtual ULONG STDMETHODCALLTYPE Release()\
{\
ULONG RetVal = InterlockedDecrement(&m_RefCount);\
if (RetVal == 0) {delete this;}\
else if (RetVal & 0x80000000) {__debugbreak();}\
return RetVal;\
}\

§ DXYZ

#define DXYZ   P3DDXYZ

Simple vector structures for passing between P3D host and implementation.

§ FXYZ

#define FXYZ   P3DFXYZ

§ NO_COPY_IUNKNOWN_IMPL

#define NO_COPY_IUNKNOWN_IMPL (   IClassName)
Value:
private: \
IClassName(const IClassName&); \
IClassName& operator=(const IClassName&);

Typedef Documentation

§ INameList

using INameList = IListBuilder<const WCHAR>

§ PEventCallback

typedef HRESULT(STDMETHODCALLTYPE * PEventCallback) (__in ISimObject &Sim, __in double dProperty, __in int iIndex)

Event input callback.

§ PEventCallbackWithSubString

typedef HRESULT(STDMETHODCALLTYPE * PEventCallbackWithSubString) (__in ISimObject &Sim, __in double dProperty, __in LPCWSTR pszSecondarySecondarySubstring, __in int iIndex)

Event input callback for double (with secondary string input)

§ PEventStringCallback

typedef HRESULT(STDMETHODCALLTYPE * PEventStringCallback) (__in ISimObject &Sim, __in LPCWSTR pszProperty, __in int iIndex)

Event input callback.

§ PEventVectorCallback

typedef HRESULT(STDMETHODCALLTYPE * PEventVectorCallback) (__in ISimObject &Sim, __in const DXYZ &vProperty, __in int iIndex)

Event input callback.

§ PNewScenarioNotify

typedef void(STDMETHODCALLTYPE * PNewScenarioNotify) (BOOL bOnSave)

Function callback for notification that a new scenario is loaded or saved. These are registered through the IScenarioManager interface

§ POnObjectCreateCallback

typedef HRESULT(STDMETHODCALLTYPE * POnObjectCreateCallback) (__in IUnknown &Obj)

Register callback on object creation. This could be a simobject or a library object.

§ POnObjectRemoveCallback

typedef HRESULT(STDMETHODCALLTYPE * POnObjectRemoveCallback) (__in IUnknown &Obj)

Register callback on object removal. This could be a simobject or a library object.

§ POnUserObjectChangedCallback

typedef HRESULT(STDMETHODCALLTYPE * POnUserObjectChangedCallback) (__in IUnknown &NewObj, __in IUnknown &OldObj)

Register callback on user object changing from one user to another (during runtime, not scenario load or vehicle change via UI)

§ PPropertyCallback

typedef HRESULT(STDMETHODCALLTYPE * PPropertyCallback) (__in const ISimObject &Sim, __out double &dProperty, __in int iIndex)

Double property callback.

§ PPropertyCallbackWithSubString

typedef HRESULT(STDMETHODCALLTYPE * PPropertyCallbackWithSubString) (__in const ISimObject &Sim, __out double &dProperty, __in LPCWSTR pszSecondarySubstring, __in int iIndex)

Double property callback (with secondary string input)

§ PPropertyStringCallback

typedef HRESULT(STDMETHODCALLTYPE * PPropertyStringCallback) (__in const ISimObject &Sim, __out LPWSTR pszProperty, __in UINT uStringLength, __in int iIndex)

String property callback.

§ PPropertyVectorCallback

typedef HRESULT(STDMETHODCALLTYPE * PPropertyVectorCallback) (__in const ISimObject &Sim, __out DXYZ &vProperty, __in int iIndex)

Vector (double x,y,z) property callback.

§ PSaveLoadCallback

typedef HRESULT(STDMETHODCALLTYPE * PSaveLoadCallback) (__in LPCWSTR pszSection, __in unsigned int uInstance, __in LPCWSTR pszKeyword, __inout void *pvVal, __in const SAVED_DATA_TYPE eDataType)

Function pointer for state save/load (.FXML files) This pointer is passed to each ISimulation when it's time for save/load Section names will automatically be constructed as: [SectionName.Instance.SimObjectID] allowing for multiple instances of a system (e.g. multi-engines) Constructed section names are limited to a maximum of 128 characters. SAVED_DATA_TYPE allows you to distinguish your data between numeric and string values

§ PSimCreateFunc

typedef HRESULT(STDMETHODCALLTYPE * PSimCreateFunc) (__in __notnull IBaseObjectV400 *, __out __notnull ISimObject **)

Function pointer prototype for object implementation creation function. This function is called for each instance of the respective simobject class

Enumeration Type Documentation

§ CLOUD_COVER

Enumerator
CLOUD_CLEAR 
CLOUD_FEW_1_8 
CLOUD_FEW_2_8 
CLOUD_SCATTERED_3_8 
CLOUD_SCATTERED_4_8 
CLOUD_BROKEN_5_8 
CLOUD_BROKEN_6_8 
CLOUD_BROKEN_7_8 
CLOUD_OVERCAST_8_8 
CLOUD_C_MAX 

§ CLOUD_COVERAGE_DENSITY

Enumerator
CLOUD_COVERAGE_DENSITY_MIN 
CLOUD_COVERAGE_DENSITY_LOW 
CLOUD_COVERAGE_DENSITY_MEDIUM 
CLOUD_COVERAGE_DENSITY_HIGH 
CLOUD_COVERAGE_DENSITY_MAXIMUM 
CLOUD_COVERAGE_DENSITY_MAX 

§ CLOUD_DRAW_DISTANCE

Enumerator
CLOUD_DRAW_DISTANCE_MIN 
CLOUD_DRAW_DISTANCE_60_MILES 
CLOUD_DRAW_DISTANCE_70_MILES 
CLOUD_DRAW_DISTANCE_80_MILES 
CLOUD_DRAW_DISTANCE_90_MILES 
CLOUD_DRAW_DISTANCE_10_MILES 
CLOUD_DRAW_DISTANCE_110_MILES 
CLOUD_DRAW_DISTANCE_MAX 

§ CLOUD_TOP

enum CLOUD_TOP
Enumerator
CLOUDTOP_FLAT 
CLOUDTOP_ROUND 
CLOUDTOP_ANVIL 
CLOUDTOP_TOP_MAX 

§ CLOUD_TYPE

enum CLOUD_TYPE
Enumerator
CLOUD_NONE 
CLOUD_CIRRUS 
CLOUD_STRATUS 
CLOUD_CUMULUS 
CLOUD_CUMULONIMBUS 
CLOUD_VISIBILITY_LAYER 
CLOUD_THUNDERSTORM 
CLOUD_MAX 

§ COLLISIONTYPE

COLLISIONTYPE - Object-to-object collision results

  • Returned in IBaseObject::CheckCollision
Enumerator
COLLISIONTYPE_NONE 
COLLISIONTYPE_SIMOBJECT 
COLLISIONTYPE_BUILDING 
COLLISIONTYPE_TERRAIN 
COLLISIONTYPE_OTHER 

§ EVENTTYPE

enum EVENTTYPE

Type of keyboard or joystick mapping associated with an event being registered.

Enumerator
EVENTTYPE_NORMAL 
EVENTTYPE_AXIS 
EVENTTYPE_POV 
EVENTTYPE_NORMAL_NATIVE_OVERRIDE 
EVENTTYPE_AXIS_NATIVE_OVERRIDE 
EVENTTYPE_POV_NATIVE_OVERRIDE 
EVENTTYPE_NOT_MAPPABLE 

§ HORIZONTAL_ALIGNMENT

Text horizontal alignment enum.

Enumerator
HORIZONTAL_ALIGNMENT_LEFT 
HORIZONTAL_ALIGNMENT_CENTER 
HORIZONTAL_ALIGNMENT_RIGHT 

§ ICINGRATE

enum ICINGRATE
Enumerator
ICINGRATE_NONE 
ICINGRATE_TRACE 
ICINGRATE_LIGHT 
ICINGRATE_MODERATE 
ICINGRATE_SEVERE 
ICINGRATE_MAX 

§ INTEROGATIONTYPE

Flag based types of ray trace interogation.

Enumerator
INTEROGATIONTYPE_NONE 
INTEROGATIONTYPE_TERRAIN 
INTEROGATIONTYPE_OBJECTS 

§ NET_MODE_TYPE

Types of network modes for a given object.

Enumerator
NET_MODE_TYPE_NORMAL 
NET_MODE_TYPE_REMOTE 
NET_MODE_TYPE_MASTER 
NET_MODE_TYPE_SLAVE 

§ PRECIPRATE

enum PRECIPRATE
Enumerator
PRECIPRATE_VLOW 
PRECIPRATE_LOW 
PRECIPRATE_MODERATE 
PRECIPRATE_HIGH 
PRECIPRATE_VHIGH 
PRECIPRATE_MAX 

§ PRECIPTYPE

enum PRECIPTYPE
Enumerator
PRECIP_NONE 
PRECIP_RAIN 
PRECIP_SNOW 
PRECIP_MAX 

§ PROPERTY_TYPE

Types of properties.

Enumerator
PROPERTY_TYPE_EVENT 
PROPERTY_TYPE_EVENT_WITH_SUBSTRING_INPUT 
PROPERTY_TYPE_EVENT_VECTOR 
PROPERTY_TYPE_EVENT_STRING 
PROPERTY_TYPE_DOUBLE 
PROPERTY_TYPE_DOUBLE_WITH_SUBSTRING_INPUT 
PROPERTY_TYPE_STRING 
PROPERTY_TYPE_VECTOR 
NUM_PROPERTY_TYPES 

§ SAVED_DATA_TYPE

Types of data saved via the PSaveLoadCallback.

Enumerator
SAVED_DATA_TYPE_DOUBLE 
SAVED_DATA_TYPE_STRING 
NUM_SAVED_DATA_TYPES 

§ TEXT_FONT

enum TEXT_FONT

Text font type enum.

Enumerator
TEXT_FONT_DEFAULT 
TEXT_FONT_SMALL 
TEXT_FONT_SMALL_BOLD 
TEXT_FONT_MEDIUM_BOLD 
TEXT_FONT_LARGE_BOLD 
TEXT_FONT_XLARGE_BOLD 

§ THERMAL_VISUAL_TYPE

Enumerator
THERMAL_VISUAL_NONE 
THERMAL_VISUAL_NATURAL 
THERMAL_VISUAL_SCHEMATIC 
THERMAL_VISUAL_MAX 

§ TIMEOFDAY

enum TIMEOFDAY

General time of day.

Enumerator
TIMEOFDAY_INVALID 
TIMEOFDAY_DAWN 
TIMEOFDAY_DAY 
TIMEOFDAY_DUSK 
TIMEOFDAY_NIGHT 
NUM_PERIODS_OF_DAY 

§ TIMEREF

enum TIMEREF

Used in time queries to reference Zulu (UTC) or Local time.

Enumerator
TIMEREF_INVALID 
TIMEREF_LOCAL 
TIMEREF_ZULU 
NUM_TIMEREF 

§ TURBULANCE

enum TURBULANCE
Enumerator
TURB_NONE 
TURB_LIGHT 
TURB_MODERATE 
TURB_HEAVY 
TURB_SEVERE 
TURB_MAX 

§ UNITMODE

enum UNITMODE

AI Unit modes.

Enumerator
UNITMODE_SLEEP 
UNITMODE_ZOMBIE 
UNITMODE_WAYPOINT 
UNITMODE_TAKEOFF 
UNITMODE_LANDING 
UNITMODE_TAXI 
UNITMODE_WORKING 
UNITMODE_WAITING 

§ VERTICAL_ALIGNMENT

Text vertical alignment enum.

Enumerator
VERTICAL_ALIGNMENT_TOP 
VERTICAL_ALIGNMENT_CENTER 
VERTICAL_ALIGNMENT_BOTTOM 

§ WEATHER_MODE

Enumerator
WEATHER_MODE_THEME 
WEATHER_MODE_CUSTOM 
WEATHER_MODE_GLOBAL 

§ WINDSHEAR

enum WINDSHEAR
Enumerator
WINDSHEAR_GRADUAL 
WINDSHEAR_MODERATE 
WINDSHEAR_STEEP 
WINDSHEAR_INSTANTANEOUS 
WINDSHEAR_MAX