Can't work or doesn't work?This one cant work
Desperate times call for desperate measures.

No ts-soft, it is only a pointer. You can see it in my first post and the help for the function.ts-soft wrote:I think there is a UDT or Structure "pDataSet" defined?
Sorry i mean it doesn't work. But it is the same as it can´t work. If you set a param what wants a point a string, the pb-compiler shows a errorSparkie wrote:Can't work or doesn't work?This one cant work
Desperate times call for desperate measures.
It would be the length of the string plus 1 for the null. So perhaps that is it, nicolaus needs to pass "Len(MyText$(0))+1" for the cbUnitSize parameter.Pupil wrote:What value does 'sizeof(szTitle)' return in C++ ?
If i use "Len(MyText$(0))+1" it is the same result like my order test.tinman wrote:It would be the length of the string plus 1 for the null. So perhaps that is it, nicolaus needs to pass "Len(MyText$(0))+1" for the cbUnitSize parameter.Pupil wrote:What value does 'sizeof(szTitle)' return in C++ ?
(Although I'm guessing the C example was written out of pure laziness
If i use ImportC and i want compile it, it shows polink errors.Flype wrote:or maybe ImportC instead of Import.
ok, just a try...nicolaus wrote:If i use ImportC and i want compile it, it shows polink errors.Flype wrote:or maybe ImportC instead of Import.
Ok sorry!Sparkie wrote:All these kind people trying to help you and now they have to ask you to reveal your secret solution. I have NO need to see your solution but perhaps someone else does.
Code: Select all
Global *textbuff
mytext = "SkyBeat connect to FSX"
*textbuff = AllocateMemory(StringByteLength(mytext)+1)
PokeS(*textbuff,mytext)
......
hr = SimConnect_Text(SC_handle, #SIMCONNECT_TEXT_TYPE_SCROLL_RED, 0.0, #EVENT_TEXT_1, Len(mytext)+1, *textbuff)
......
Code: Select all
;**********************************************
;* SimConnect.pb v1.0 *
;* SimConnect Wrapper for Flight Simulator X *
;* create at 15.05.2008 *
;* by Nico Grüner *
;**********************************************
#DWORD_MAX = $FFFFFFFF
#SIMCONNECT_UNUSED = #DWORD_MAX
#SIMCONNECT_OBJECT_ID_USER = 0 ; proxy value for User vehicle ObjectID
;/Notification Group priority values
#SIMCONNECT_GROUP_PRIORITY_HIGHEST = 1 ; highest priority
#SIMCONNECT_GROUP_PRIORITY_HIGHEST_MASKABLE = 10000000 ; highest priority that allows events to be masked
#SIMCONNECT_GROUP_PRIORITY_STANDARD = 1900000000 ; standard priority
#SIMCONNECT_GROUP_PRIORITY_DEFAULT = 2000000000 ; default priority
#SIMCONNECT_GROUP_PRIORITY_LOWEST = 4000000000 ; priorities lower than this will be ignored
;/ Weather observations Metar strings
#MAX_METAR_LENGTH = 2000
;/ Maximum thermal size is 100 km
#MAX_THERMAL_SIZE = 100000
#MAX_THERMAL_RATE = 1000
;/ SIMCONNECT_DATA_INITPOSITION.Airspeed
#INITPOSITION_AIRSPEED_CRUISE = -1 ; aircraft's cruise airspeed
#INITPOSITION_AIRSPEED_KEEP = -2 ; keep current airspeed
;/ AddToClientDataDefinition dwSizeOrType parameter type values
#SIMCONNECT_CLIENTDATATYPE_INT8 = -1; ; 8-bit integer number
#SIMCONNECT_CLIENTDATATYPE_INT16 = -2; ; 16-bit integer number
#SIMCONNECT_CLIENTDATATYPE_INT32 = -3; ; 32-bit integer number
#SIMCONNECT_CLIENTDATATYPE_INT64 = -4; ; 64-bit integer number
#SIMCONNECT_CLIENTDATATYPE_FLOAT32 = -5; ; 32-bit floating-point number (float)
#SIMCONNECT_CLIENTDATATYPE_FLOAT64 = -6; ; 64-bit floating-point number (double)
;/ AddToClientDataDefinition dwOffset parameter special values
#SIMCONNECT_CLIENTDATAOFFSET_AUTO = -1; ; automatically compute offset of the ClientData variable
;/ Open ConfigIndex parameter special Value
#SIMCONNECT_OPEN_CONFIGINDEX_LOCAL = -1; ; ignore SimConnect.cfg settings, and force local connection
;/ Receive data types
Enumeration
#SIMCONNECT_RECV_ID_NULL
#SIMCONNECT_RECV_ID_EXCEPTION
#SIMCONNECT_RECV_ID_OPEN
#SIMCONNECT_RECV_ID_QUIT
#SIMCONNECT_RECV_ID_EVENT
#SIMCONNECT_RECV_ID_EVENT_OBJECT_ADDREMOVE
#SIMCONNECT_RECV_ID_EVENT_FILENAME
#SIMCONNECT_RECV_ID_EVENT_FRAME
#SIMCONNECT_RECV_ID_SIMOBJECT_DATA
#SIMCONNECT_RECV_ID_SIMOBJECT_DATA_BYTYPE
#SIMCONNECT_RECV_ID_WEATHER_OBSERVATION
#SIMCONNECT_RECV_ID_CLOUD_STATE
#SIMCONNECT_RECV_ID_ASSIGNED_OBJECT_ID
#SIMCONNECT_RECV_ID_RESERVED_KEY
#SIMCONNECT_RECV_ID_CUSTOM_ACTION
#SIMCONNECT_RECV_ID_SYSTEM_STATE
#SIMCONNECT_RECV_ID_CLIENT_DATA
EndEnumeration
;/ Data data types
Enumeration
#SIMCONNECT_DATATYPE_INVALID; ; invalid Data type
#SIMCONNECT_DATATYPE_INT32; ; 32-bit integer number
#SIMCONNECT_DATATYPE_INT64; ; 64-bit integer number
#SIMCONNECT_DATATYPE_FLOAT32; ; 32-bit floating-point number (float)
#SIMCONNECT_DATATYPE_FLOAT64; ; 64-bit floating-point number (double)
#SIMCONNECT_DATATYPE_STRING8; ; 8-byte String
#SIMCONNECT_DATATYPE_STRING32; ; 32-byte String
#SIMCONNECT_DATATYPE_STRING64; ; 64-byte String
#SIMCONNECT_DATATYPE_STRING128; ; 128-byte String
#SIMCONNECT_DATATYPE_STRING256; ; 256-byte String
#SIMCONNECT_DATATYPE_STRING260; ; 260-byte String
#SIMCONNECT_DATATYPE_STRINGV; ; variable-length String
#SIMCONNECT_DATATYPE_INITPOSITION; ; see SIMCONNECT_DATA_INITPOSITION
#SIMCONNECT_DATATYPE_MARKERSTATE; ; see SIMCONNECT_DATA_MARKERSTATE
#SIMCONNECT_DATATYPE_WAYPOINT; ; see SIMCONNECT_DATA_WAYPOINT
#SIMCONNECT_DATATYPE_LATLONALT; ; see SIMCONNECT_DATA_LATLONALT
#SIMCONNECT_DATATYPE_XYZ; ; see SIMCONNECT_DATA_XYZ
#SIMCONNECT_DATATYPE_MAX; ; enum limit
EndEnumeration
;/ Exception error types
Enumeration
#SIMCONNECT_EXCEPTION_NONE
#SIMCONNECT_EXCEPTION_ERROR
#SIMCONNECT_EXCEPTION_SIZE_MISMATCH
#SIMCONNECT_EXCEPTION_UNRECOGNIZED_ID
#SIMCONNECT_EXCEPTION_UNOPENED
#SIMCONNECT_EXCEPTION_VERSION_MISMATCH
#SIMCONNECT_EXCEPTION_TOO_MANY_GROUPS
#SIMCONNECT_EXCEPTION_NAME_UNRECOGNIZED
#SIMCONNECT_EXCEPTION_TOO_MANY_EVENT_NAMES
#SIMCONNECT_EXCEPTION_EVENT_ID_DUPLICATE
#SIMCONNECT_EXCEPTION_TOO_MANY_MAPS
#SIMCONNECT_EXCEPTION_TOO_MANY_OBJECTS
#SIMCONNECT_EXCEPTION_TOO_MANY_REQUESTS
#SIMCONNECT_EXCEPTION_WEATHER_INVALID_PORT
#SIMCONNECT_EXCEPTION_WEATHER_INVALID_METAR
#SIMCONNECT_EXCEPTION_WEATHER_UNABLE_TO_GET_OBSERVATION
#SIMCONNECT_EXCEPTION_WEATHER_UNABLE_TO_CREATE_STATION
#SIMCONNECT_EXCEPTION_WEATHER_UNABLE_TO_REMOVE_STATION
#SIMCONNECT_EXCEPTION_INVALID_DATA_TYPE
#SIMCONNECT_EXCEPTION_INVALID_DATA_SIZE
#SIMCONNECT_EXCEPTION_DATA_ERROR
#SIMCONNECT_EXCEPTION_INVALID_ARRAY
#SIMCONNECT_EXCEPTION_CREATE_OBJECT_FAILED
#SIMCONNECT_EXCEPTION_LOAD_FLIGHTPLAN_FAILED
#SIMCONNECT_EXCEPTION_OPERATION_INVALID_FOR_OBJECT_TYPE
#SIMCONNECT_EXCEPTION_ILLEGAL_OPERATION
#SIMCONNECT_EXCEPTION_ALREADY_SUBSCRIBED
#SIMCONNECT_EXCEPTION_INVALID_ENUM
#SIMCONNECT_EXCEPTION_DEFINITION_ERROR
#SIMCONNECT_EXCEPTION_DUPLICATE_ID
#SIMCONNECT_EXCEPTION_DATUM_ID
#SIMCONNECT_EXCEPTION_OUT_OF_BOUNDS
EndEnumeration
;/ Object types
Enumeration
#SIMCONNECT_SIMOBJECT_TYPE_USER
#SIMCONNECT_SIMOBJECT_TYPE_ALL
#SIMCONNECT_SIMOBJECT_TYPE_AIRCRAFT
#SIMCONNECT_SIMOBJECT_TYPE_HELICOPTER
#SIMCONNECT_SIMOBJECT_TYPE_BOAT
#SIMCONNECT_SIMOBJECT_TYPE_GROUND
EndEnumeration
;/ EventState values
Enumeration
#SIMCONNECT_STATE_OFF
#SIMCONNECT_STATE_ON
EndEnumeration
;/ Object Data Request Period values
Enumeration
#SIMCONNECT_PERIOD_NEVER
#SIMCONNECT_PERIOD_ONCE
#SIMCONNECT_PERIOD_VISUAL_FRAME
#SIMCONNECT_PERIOD_SIM_FRAME
#SIMCONNECT_PERIOD_SECOND
EndEnumeration
;/
Enumeration
#SIMCONNECT_MISSION_FAILED
#SIMCONNECT_MISSION_CRASHED
#SIMCONNECT_MISSION_SUCCEEDED
EndEnumeration
;/ ClientData Request Period values
Enumeration
#SIMCONNECT_CLIENT_DATA_PERIOD_NEVER
#SIMCONNECT_CLIENT_DATA_PERIOD_ONCE
#SIMCONNECT_CLIENT_DATA_PERIOD_VISUAL_FRAME
#SIMCONNECT_CLIENT_DATA_PERIOD_ON_SET
#SIMCONNECT_CLIENT_DATA_PERIOD_SECOND
EndEnumeration
Enumeration
#SIMCONNECT_TEXT_TYPE_SCROLL_BLACK
#SIMCONNECT_TEXT_TYPE_SCROLL_WHITE
#SIMCONNECT_TEXT_TYPE_SCROLL_RED
#SIMCONNECT_TEXT_TYPE_SCROLL_GREEN
#SIMCONNECT_TEXT_TYPE_SCROLL_BLUE
#SIMCONNECT_TEXT_TYPE_SCROLL_YELLOW
#SIMCONNECT_TEXT_TYPE_SCROLL_MAGENTA
#SIMCONNECT_TEXT_TYPE_SCROLL_CYAN
#SIMCONNECT_TEXT_TYPE_PRINT_BLACK=$0100
#SIMCONNECT_TEXT_TYPE_PRINT_WHITE
#SIMCONNECT_TEXT_TYPE_PRINT_RED
#SIMCONNECT_TEXT_TYPE_PRINT_GREEN
#SIMCONNECT_TEXT_TYPE_PRINT_BLUE
#SIMCONNECT_TEXT_TYPE_PRINT_YELLOW
#SIMCONNECT_TEXT_TYPE_PRINT_MAGENTA
#SIMCONNECT_TEXT_TYPE_PRINT_CYAN
#SIMCONNECT_TEXT_TYPE_MENU=$0200
EndEnumeration
Enumeration
#SIMCONNECT_TEXT_RESULT_MENU_SELECT_1
#SIMCONNECT_TEXT_RESULT_MENU_SELECT_2
#SIMCONNECT_TEXT_RESULT_MENU_SELECT_3
#SIMCONNECT_TEXT_RESULT_MENU_SELECT_4
#SIMCONNECT_TEXT_RESULT_MENU_SELECT_5
#SIMCONNECT_TEXT_RESULT_MENU_SELECT_6
#SIMCONNECT_TEXT_RESULT_MENU_SELECT_7
#SIMCONNECT_TEXT_RESULT_MENU_SELECT_8
#SIMCONNECT_TEXT_RESULT_MENU_SELECT_9
#SIMCONNECT_TEXT_RESULT_MENU_SELECT_10
#SIMCONNECT_TEXT_RESULT_DISPLAYED = $00010000
#SIMCONNECT_TEXT_RESULT_QUEUED
#SIMCONNECT_TEXT_RESULT_REMOVED
#SIMCONNECT_TEXT_RESULT_REPLACED
#SIMCONNECT_TEXT_RESULT_TIMEOUT
EndEnumeration
Enumeration
#SIMCONNECT_WEATHER_MODE_THEME
#SIMCONNECT_WEATHER_MODE_RWW
#SIMCONNECT_WEATHER_MODE_CUSTOM
#SIMCONNECT_WEATHER_MODE_GLOBAL
EndEnumeration
Enumeration
#SIMCONNECT_FACILITY_LIST_TYPE_AIRPORT
#SIMCONNECT_FACILITY_LIST_TYPE_WAYPOINT
#SIMCONNECT_FACILITY_LIST_TYPE_NDB
#SIMCONNECT_FACILITY_LIST_TYPE_VOR
#SIMCONNECT_FACILITY_LIST_TYPE_COUNT
EndEnumeration
#SIMCONNECT_CLOUD_STATE_ARRAY_WIDTH = 64
#SIMCONNECT_CLOUD_STATE_ARRAY_SIZE = #SIMCONNECT_CLOUD_STATE_ARRAY_WIDTH*#SIMCONNECT_CLOUD_STATE_ARRAY_WIDTH;
;/ flags For SIMCONNECT_RECV_ID_VOR_LIST
#SIMCONNECT_RECV_ID_VOR_LIST_HAS_NAV_SIGNAL = $00000001; ; Has Nav signal
#SIMCONNECT_RECV_ID_VOR_LIST_HAS_LOCALIZER = $00000002; ; Has localizer
#SIMCONNECT_RECV_ID_VOR_LIST_HAS_GLIDE_SLOPE = $00000004; ; Has Nav signal
#SIMCONNECT_RECV_ID_VOR_LIST_HAS_DME = $00000008; ; Station has DME
;/ bits for the Waypoint Flags field: may be combined
#SIMCONNECT_WAYPOINT_NONE = $00;
#SIMCONNECT_WAYPOINT_SPEED_REQUESTED = $04; ; requested speed at waypoint is valid
#SIMCONNECT_WAYPOINT_THROTTLE_REQUESTED = $08; ; request a specific throttle percentage
#SIMCONNECT_WAYPOINT_COMPUTE_VERTICAL_SPEED = $10; ; compute vertical to speed to reach waypoint altitude when crossing the waypoint
#SIMCONNECT_WAYPOINT_ALTITUDE_IS_AGL = $20; ; AltitudeIsAGL
#SIMCONNECT_WAYPOINT_ON_GROUND = $00100000; ; place this waypoint on the ground
#SIMCONNECT_WAYPOINT_REVERSE = $00200000; ; Back up to this waypoint. Only valid on first waypoint
#SIMCONNECT_WAYPOINT_WRAP_TO_FIRST = $00400000; ; Wrap around back to first waypoint. Only valid on last waypoint.
#SIMCONNECT_EVENT_FLAG_DEFAULT = $00000000;
#SIMCONNECT_EVENT_FLAG_FAST_REPEAT_TIMER = $00000001; ; set event repeat timer to simulate fast repeat
#SIMCONNECT_EVENT_FLAG_SLOW_REPEAT_TIMER = $00000002; ; set event repeat timer to simulate slow repeat
#SIMCONNECT_EVENT_FLAG_GROUPID_IS_PRIORITY = $00000010; ; interpret GroupID parameter as priority value
#SIMCONNECT_DATA_REQUEST_FLAG_DEFAULT = $00000000;
#SIMCONNECT_DATA_REQUEST_FLAG_CHANGED = $00000001; ; send requested data when value(s) change
#SIMCONNECT_DATA_REQUEST_FLAG_TAGGED = $00000002; ; send requested data in tagged format
#SIMCONNECT_DATA_SET_FLAG_DEFAULT = $00000000; ; data is in tagged format
#SIMCONNECT_DATA_SET_FLAG_TAGGED = $00000001; ; data is in tagged format
#SIMCONNECT_CREATE_CLIENT_DATA_FLAG_DEFAULT = $00000000;
#SIMCONNECT_CREATE_CLIENT_DATA_FLAG_READ_ONLY = $00000001; ; permit only ClientData creator to write into ClientData
;/ dwData contains these flags for the "View" System Event
#SIMCONNECT_VIEW_SYSTEM_EVENT_DATA_COCKPIT_2D = $00000001; ; 2D Panels in cockpit view
#SIMCONNECT_VIEW_SYSTEM_EVENT_DATA_COCKPIT_VIRTUAL = $00000002; ; Virtual (3D) panels in cockpit view
#SIMCONNECT_VIEW_SYSTEM_EVENT_DATA_ORTHOGONAL = $00000004; ; Orthogonal (Map) view
;/ dwData contains these flags for the "Sound" System Event
#SIMCONNECT_SOUND_SYSTEM_EVENT_DATA_MASTER = $00000001; ; Sound Master
Structure SIMCONNECT_RECV
dwSize.l; ; record size
dwVersion.l; ; interface version
dwID.l; ; see SIMCONNECT_RECV_ID
EndStructure
Structure SIMCONNECT_RECV_EXCEPTION Extends SIMCONNECT_RECV ;-when dwID == SIMCONNECT_RECV_ID_EXCEPTION
dwException.l ; see SIMCONNECT_EXCEPTION
UNKNOWN_SENDID.l;
dwSendID.l ; see SimConnect_GetLastSentPacketID
UNKNOWN_INDEX.l;
dwIndex.l ; index of parameter that was source of Error
EndStructure
Structure SIMCONNECT_RECV_OPEN Extends SIMCONNECT_RECV;- when dwID == SIMCONNECT_RECV_ID_OPEN
szApplicationName.s[256];
dwApplicationVersionMajor.l
dwApplicationVersionMinor.l
dwApplicationBuildMajor.l
dwApplicationBuildMinor.l
dwSimConnectVersionMajor.l
dwSimConnectVersionMinor.l
dwSimConnectBuildMajor.l
dwSimConnectBuildMinor.l
dwReserved1.l
dwReserved2.l
EndStructure
Structure SIMCONNECT_RECV_QUIT Extends SIMCONNECT_RECV ;- when dwID == SIMCONNECT_RECV_ID_QUIT
EndStructure
Structure SIMCONNECT_RECV_EVENT Extends SIMCONNECT_RECV;- when dwID == SIMCONNECT_RECV_ID_EVENT
UNKNOWN_GROUP.l
uGroupID.l
uEventID.l
dwData.l ; uEventID-dependent context
EndStructure
Structure SIMCONNECT_RECV_EVENT_FILENAME Extends SIMCONNECT_RECV_EVENT;- when dwID == SIMCONNECT_RECV_ID_EVENT_FILENAME
szFileName.s[#MAX_PATH]
;szFileName.s; ; uEventID-dependent context
dwFlags.l
EndStructure
Structure SIMCONNECT_RECV_EVENT_OBJECT_ADDREMOVE Extends SIMCONNECT_RECV_EVENT;- when dwID == SIMCONNECT_RECV_ID_EVENT_FILENAME
eObjType.l
EndStructure
Structure SIMCONNECT_RECV_EVENT_FRAME Extends SIMCONNECT_RECV_EVENT;- when dwID == SIMCONNECT_RECV_ID_EVENT_FRAME
fFrameRate.f
fSimSpeed.f
EndStructure
Structure SIMCONNECT_RECV_EVENT_MULTIPLAYER_SERVER_STARTED Extends SIMCONNECT_RECV_EVENT ; when dwID == SIMCONNECT_RECV_ID_EVENT_MULTIPLAYER_SERVER_STARTED
; No Event specific Data, For now
EndStructure
Structure SIMCONNECT_RECV_EVENT_MULTIPLAYER_CLIENT_STARTED Extends SIMCONNECT_RECV_EVENT ; when dwID == SIMCONNECT_RECV_ID_EVENT_MULTIPLAYER_CLIENT_STARTED
; No Event specific Data, For now
EndStructure
Structure SIMCONNECT_RECV_EVENT_MULTIPLAYER_SESSION_ENDED Extends SIMCONNECT_RECV_EVENT ; when dwID == SIMCONNECT_RECV_ID_EVENT_MULTIPLAYER_SESSION_ENDED
; No Event specific Data, For now
EndStructure
;/ SIMCONNECT_DATA_RACE_RESULT
Structure SIMCONNECT_DATA_RACE_RESULT
dwNumberOfRacers.l ; The total number of racers
MissionGUID.l ; The name of the mission to execute, NULL if no mission
szPlayerName.s[#MAX_PATH]; ; The name of the player
szSessionType.s[#MAX_PATH]; ; The type of the multiplayer session: "LAN", "GAMESPY")
szAircraft.s[#MAX_PATH]; ; The aircraft type
szPlayerRole.s[#MAX_PATH]; ; The player role in the mission
fTotalTime.d ; Total time in seconds, 0 means DNF
fPenaltyTime.d ; Total penalty time in seconds
dwIsDisqualified.l ; non 0 - disqualified, 0 - not disqualified
EndStructure
Structure SIMCONNECT_RECV_EVENT_RACE_END Extends SIMCONNECT_RECV_EVENT ; when dwID == SIMCONNECT_RECV_ID_EVENT_RACE_END
dwRacerNumber.l ; The index of the racer the results are for
RacerData.SIMCONNECT_DATA_RACE_RESULT;
EndStructure
Structure SIMCONNECT_RECV_EVENT_RACE_LAP Extends SIMCONNECT_RECV_EVENT ; when dwID == SIMCONNECT_RECV_ID_EVENT_RACE_LAP
dwLapIndex.l; ; The index of the lap the results are for
RacerData.SIMCONNECT_DATA_RACE_RESULT
EndStructure
Structure SIMCONNECT_RECV_SIMOBJECT_DATA Extends SIMCONNECT_RECV ;- when dwID == SIMCONNECT_RECV_ID_SIMOBJECT_DATA
dwRequestID.l
dwObjectID.l
dwDefineID.l
dwFlags.l ; SIMCONNECT_DATA_REQUEST_FLAG
dwentrynumber.l ; if multiple objects returned, this is number <entrynumber> out of <outof>.
dwoutof.l ; note: starts with 1, not 0.
dwDefineCount.l ; data count (number of datums, *not* byte count)
dwData.l ; data begins here, dwDefineCount data items
EndStructure
Structure SIMCONNECT_RECV_SIMOBJECT_DATA_BYTYPE Extends SIMCONNECT_RECV_SIMOBJECT_DATA ;- when dwID == SIMCONNECT_RECV_ID_SIMOBJECT_DATA_BYTYPE
EndStructure
Structure SIMCONNECT_RECV_CLIENT_DATA Extends SIMCONNECT_RECV_SIMOBJECT_DATA ;- when dwID == SIMCONNECT_RECV_ID_CLIENT_DATA
EndStructure
Structure SIMCONNECT_RECV_WEATHER_OBSERVATION Extends SIMCONNECT_RECV ;- when dwID == SIMCONNECT_RECV_ID_WEATHER_OBSERVATION
vdwRequestID.l
szMetar.s[1] ; Variable length string whose maximum size is MAX_METAR_LENGTH
EndStructure
Structure SIMCONNECT_RECV_CLOUD_STATE Extends SIMCONNECT_RECV ;- when dwID == SIMCONNECT_RECV_ID_CLOUD_STATE
dwRequestID.l
dwArraySize.l
rgbData.b[1]
EndStructure
Structure SIMCONNECT_RECV_ASSIGNED_OBJECT_ID Extends SIMCONNECT_RECV;- when dwID == SIMCONNECT_RECV_ID_ASSIGNED_OBJECT_ID
dwRequestID.l
dwObjectID.l
EndStructure
Structure SIMCONNECT_RECV_RESERVED_KEY Extends SIMCONNECT_RECV ;- when dwID == SIMCONNECT_RECV_ID_RESERVED_KEY
szChoiceReserved.s[30];
szReservedKey.s[30];
EndStructure
Structure SIMCONNECT_RECV_SYSTEM_STATE Extends SIMCONNECT_RECV;- when dwID == SIMCONNECT_RECV_ID_SYSTEM_STATE
dwRequestID.l
dwInteger.l
fFloat.f
szString.s[#MAX_PATH]
EndStructure
Structure SIMCONNECT_RECV_CUSTOM_ACTION Extends SIMCONNECT_RECV_EVENT ;- public SIMCONNECT_RECV_EVENT
guidInstanceId.l ; Instance id of the action that executed
dwWaitForCompletion.l ; Wait for completion flag on the action
szPayLoad.s[1] ; Variable length string payload associated with the mission action.
EndStructure
Structure SIMCONNECT_RECV_EVENT_WEATHER_MODE Extends SIMCONNECT_RECV_EVENT
EndStructure
;/ SIMCONNECT_RECV_FACILITIES_LIST
Structure SIMCONNECT_RECV_FACILITIES_LIST Extends SIMCONNECT_RECV
dwRequestID.l
dwArraySize.l
dwentrynumber.l ; when the array of items is too big For one send, which send this is (0..dwOutOf-1)
dwoutof.l ; total number of transmissions the list is chopped into
EndStructure
;/ SIMCONNECT_DATA_FACILITY_AIRPORT
Structure SIMCONNECT_DATA_FACILITY_AIRPORT
ICAO.s[9] ; ICAO of the object
Latitude.d ; degrees
Longitude.d ; degrees
Altitude.d ; meters
EndStructure
;/ SIMCONNECT_RECV_AIRPORT_LIST
Structure SIMCONNECT_RECV_AIRPORT_LIST Extends SIMCONNECT_RECV_FACILITIES_LIST
rgData.SIMCONNECT_DATA_FACILITY_AIRPORT[1]
EndStructure
;/ SIMCONNECT_DATA_FACILITY_WAYPOINT
Structure SIMCONNECT_DATA_FACILITY_WAYPOINT Extends SIMCONNECT_DATA_FACILITY_AIRPORT
fMagVar.f ; Magvar in degrees
EndStructure
;/ SIMCONNECT_RECV_WAYPOINT_LIST
Structure SIMCONNECT_RECV_WAYPOINT_LIST Extends SIMCONNECT_RECV_FACILITIES_LIST
rgData.SIMCONNECT_DATA_FACILITY_WAYPOINT[1]
EndStructure
;/ SIMCONNECT_DATA_FACILITY_NDB
Structure SIMCONNECT_DATA_FACILITY_NDB Extends SIMCONNECT_DATA_FACILITY_WAYPOINT
fFrequency.f ; frequency in Hz (flot or long, at the translation i don´t know 100% )
EndStructure
;/ SIMCONNECT_RECV_NDB_LIST
Structure SIMCONNECT_RECV_NDB_LIST Extends SIMCONNECT_RECV_FACILITIES_LIST
rgData.SIMCONNECT_DATA_FACILITY_NDB[1]
EndStructure
;/ SIMCONNECT_DATA_FACILITY_VOR
Structure SIMCONNECT_DATA_FACILITY_VOR Extends SIMCONNECT_DATA_FACILITY_NDB
flags.l ; SIMCONNECT_VOR_FLAGS
fLocalizer.f ; Localizer in degrees
GlideLat.d ; Glide Slope Location (deg, deg, meters)
GlideLon.d
GlideAlt.d
fGlideSlopeAngle.f ; Glide Slope in degrees
EndStructure
;/ SIMCONNECT_RECV_VOR_LIST
Structure SIMCONNECT_RECV_VOR_LIST Extends SIMCONNECT_RECV_FACILITIES_LIST
rgData.SIMCONNECT_DATA_FACILITY_VOR[1]
EndStructure
;/ SIMCONNECT_DATATYPE_INITPOSITION
Structure SIMCONNECT_DATA_INITPOSITION
Latitude.d; ; degrees
Longitude.d; ; degrees
Altitude.d; ; feet
Pitch.d; ; degrees
Bank.d; ; degrees
Heading.d; ; degrees
OnGround.l; ; 1=force to be on the ground
Airspeed.l ; knots
EndStructure
;/ SIMCONNECT_DATATYPE_MARKERSTATE
Structure SIMCONNECT_DATA_MARKERSTATE
szMarkerName.s[64]
dwMarkerState.l
EndStructure
;/ SIMCONNECT_DATATYPE_WAYPOINT
Structure SIMCONNECT_DATA_WAYPOINT
Latitude.d; ; degrees
Longitude.d; ; degrees
Altitude.d; ; feet
flags.l
ktsSpeed.d; ; knots
percentThrottle.d;
EndStructure
;/ SIMCONNECT_DATA_LATLONALT
Structure SIMCONNECT_DATA_LATLONALT
Latitude.d;
Longitude.d;
Altitude.d;
EndStructure
;/ SIMCONNECT_DATA_XYZ
Structure SIMCONNECT_DATA_XYZ
x.d;
y.d;
z.d;
EndStructure
Import "SimConnect.lib"
SimConnect_MapClientEventToSimEvent(hSimConnect.l, EventID.l, EventName.s = "") ;As "_SimConnect_MapClientEventToSimEvent@12"
SimConnect_TransmitClientEvent(hSimConnect.l, ObjectID.l, EventID.l, dwData.l, GroupID.l, flags) ;As "_SimConnect_TransmitClientEvent@24"
SimConnect_SetSystemEventState(hSimConnect.l, EventID.l, dwState.l) ;As "_SimConnect_SetSystemEventState@12"
SimConnect_AddClientEventToNotificationGroup(hSimConnect.l, GroupID.l, EventID.l, bMaskable.l) ;As "_SimConnect_AddClientEventToNotificationGroup@16"
SimConnect_RemoveClientEvent(hSimConnect.l, GroupID.l, EventID.l) ;As "_SimConnect_RemoveClientEvent@12"
SimConnect_SetNotificationGroupPriority(hSimConnect.l, GroupID.l, uPriority.l) ;As "_SimConnect_SetNotificationGroupPriority@12"
SimConnect_ClearNotificationGroup(hSimConnect.l, GroupID.l) ;As "_SimConnect_ClearNotificationGroup@8"
SimConnect_RequestNotificationGroup(hSimConnect.l, GroupID.l, dwReserved.l, flags.l) ;As "_SimConnect_RequestNotificationGroup@16"
SimConnect_AddToDataDefinition(hSimConnect.l, DefineID.l, DatumName.s, UnitsName.s, DatumType = #SIMCONNECT_DATATYPE_FLOAT64, fEpsilon.f=0.0, DatumID.l=#SIMCONNECT_UNUSED) ;As "_SimConnect_AddToDataDefinition@28"
SimConnect_ClearDataDefinition(hSimConnect.l, DefineID.l) ;As "_SimConnect_ClearDataDefinition@8"
SimConnect_RequestDataOnSimObject(hSimConnect.l, RequestID.l, DefineID.l, ObjectID.l, Period.l, flags.l, origin.l, interval.l, limit.l) ;As "_SimConnect_RequestDataOnSimObject@36"
SimConnect_RequestDataOnSimObjectType(hSimConnect.l, RequestID.l, DefineID.l, dwRadiusMeters.l, type.l) ;As "_SimConnect_RequestDataOnSimObjectType@20"
SimConnect_SetDataOnSimObject(hSimConnect.l, DefineID.l, ObjectID.l, flags.l, ArrayCount.l, cbUnitSize.l, *pDataSet.l) ;As "_SimConnect_SetDataOnSimObject@28"
SimConnect_MapInputEventToClientEvent(hSimConnect.l, GroupID.l, *szInputDefinition.s, DownEventID.l, DownValue.l, UpEventID.l, UpValue.l, bMaskable.l) ;As "_SimConnect_MapInputEventToClientEvent@32"
SimConnect_SetInputGroupPriority(hSimConnect.l, GroupID.l, uPriority.l) ;As "_SimConnect_SetInputGroupPriority@12"
SimConnect_RemoveInputEvent(hSimConnect.l, GroupID.l, *szInputDefinition.s) ;As "_SimConnect_RemoveInputEvent@12"
SimConnect_ClearInputGroup(hSimConnect.l, GroupID.l) ;As "_SimConnect_ClearInputGroup@8"
SimConnect_SetInputGroupState(hSimConnect.l, GroupID.l, dwState.l) ;As "_SimConnect_SetInputGroupState@12"
SimConnect_RequestReservedKey(hSimConnect.s, EventID.l, *szKeyChoice1.s, *szKeyChoice2.s, *szKeyChoice3.s) ;As "_SimConnect_RequestReservedKey@20"
SimConnect_SubscribeToSystemEvent(hSimConnect.l, EventID.l, SystemEventName.s) ;As "_SimConnect_SubscribeToSystemEvent@12"
SimConnect_UnsubscribeFromSystemEvent(hSimConnect.l, EventID.l) ;As "_SimConnect_UnsubscribeFromSystemEvent@8"
SimConnect_WeatherRequestInterpolatedObservation(hSimConnect.l, RequestID.l, lat.f, lon.f, alt.f) ;As "_SimConnect_WeatherRequestInterpolatedObservation@20"
SimConnect_WeatherRequestObservationAtStation(hSimConnect.l, RequestID.l, *szICAO.s) ;As "_SimConnect_WeatherRequestObservationAtStation@12"
SimConnect_WeatherRequestObservationAtNearestStation(hSimConnect.l, RequestID.l, lat.f, lon.f) ;As "_SimConnect_WeatherRequestObservationAtNearestStation@16"
SimConnect_WeatherCreateStation(hSimConnect.l, RequestID.l, *szICAO.s, *szName.s, lat.f, lon.f, alt.f) ;As "_SimConnect_WeatherCreateStation@28"
SimConnect_WeatherRemoveStation(hSimConnect.l, RequestID.l, *szICAO.s) ;As "_SimConnect_WeatherRemoveStation@12"
SimConnect_WeatherSetObservation(hSimConnect.l, Seconds.l, *szMetar.s) ;As "_SimConnect_WeatherSetObservation@12"
SimConnect_WeatherSetModeServer(hSimConnect.l, dwPort.l, dwSeconds.l) ;As "_SimConnect_WeatherSetModeServer@12"
SimConnect_WeatherSetModeTheme(hSimConnect.l, *szThemeName.s) ;As "_SimConnect_WeatherSetModeTheme@8"
SimConnect_WeatherSetModeGlobal(hSimConnect.l) ;As "_SimConnect_WeatherSetModeGlobal@4"
SimConnect_WeatherSetModeCustom(hSimConnect.l) ;As "_SimConnect_WeatherSetModeCustom@4"
SimConnect_WeatherSetDynamicUpdateRate(hSimConnect.l, dwRate.l) ;As "_SimConnect_WeatherSetDynamicUpdateRate@8"
SimConnect_WeatherRequestCloudState(hSimConnect.l, RequestID.l, minLat.f, minLon.f, minAlt.f, maxLat.f, maxLon.f, maxAlt.f, dwFlags = 0) ;As "_SimConnect_WeatherRequestCloudState@36"
SimConnect_WeatherCreateThermal(hSimConnect.l, RequestID.l, lat.f, lon.f, alt.f, radius.f, height.f, coreRate.f = 3.0, coreTurbulence.f = 0.05, sinkRate.f = 3.0, sinkTurbulence.f = 0.2, coreSize.f = 0.4, coreTransitionSize.f = 0.1, sinkLayerSize.f = 0.4, sinkTransitionSize.f = 0.1) ;As "_SimConnect_WeatherCreateThermal@60"
SimConnect_WeatherRemoveThermal(hSimConnect.l, ObjectID.l) ;As "_SimConnect_WeatherRemoveThermal@8"
SimConnect_AICreateParkedATCAircraft(hSimConnect.l, *szContainerTitle.s, *szTailNumber.s, *szAirportID.s, RequestID.l) ;As "_SimConnect_AICreateParkedATCAircraft@20"
SimConnect_AICreateEnrouteATCAircraft(hSimConnect.l, *szContainerTitle.s, *szTailNumber.s, iFlightNumber.l, *szFlightPlanPath.s, dFlightPlanPosition.d, bTouchAndGo.b, RequestID.l) ;As "_SimConnect_AICreateEnrouteATCAircraft@36"
SimConnect_AICreateNonATCAircraft(hSimConnect.l, *szContainerTitle.s, *szTailNumber.s, InitPos.l, RequestID.l) ;As "_SimConnect_AICreateNonATCAircraft@20"
SimConnect_AICreateSimulatedObject(hSimConnect.l, *szContainerTitle.s, InitPos.l, RequestID.l) ;As "_SimConnect_AICreateSimulatedObject@"
SimConnect_AIReleaseControl(hSimConnect.l, ObjectID.l, RequestID.l) ;As "_SimConnect_AIReleaseControl@12"
SimConnect_AIRemoveObject(hSimConnect.l, ObjectID.l, RequestID.l) ;As "_SimConnect_AIRemoveObject@12"
SimConnect_AISetAircraftFlightPlan(hSimConnect.l, ObjectID.l, *szFlightPlanPath.s, RequestID.l) ;As "_SimConnect_AISetAircraftFlightPlan@16"
SimConnect_ExecuteMissionAction(hSimConnect.l, guidInstanceId.l) ;As "_SimConnect_ExecuteMissionAction@8"
SimConnect_CompleteCustomMissionAction(hSimConnect.l, guidInstanceId.l) ;As "_SimConnect_CompleteCustomMissionAction@8"
SimConnect_Close(hSimConnect.l) ;As "_SimConnect_Close@4"
SimConnect_RetrieveString(*pData.SIMCONNECT_RECV, cbData.l, *pStringV.l, *pszString.s, *pcbString.l)
SimConnect_GetLastSentPacketID(hSimConnect.l, *pdwError.l)
SimConnect_Open(phSimConnect.l, szName.s, hwnd.l, UserEventWin32.l, hEventHandle.l, ConfigIndex.l) ;As "_SimConnect_Open@24"
SimConnect_CallDispatch(hSimConnect.l, pfcnDispatch.l, pContext.l) ;As "_SimConnect_CallDispatch@12"
SimConnect_GetNextDispatch(hSimConnect.l, *ppData.SIMCONNECT_RECV, pcbData.l)
SimConnect_RequestResponseTimes(hSimConnect.l, nCount.l, fElapsedSeconds.f)
SimConnect_InsertString(pDest.l, cbDest.l, *ppEnd.l, pcbStringV.l, pSource.l)
SimConnect_CameraSetRelative6DOF(hSimConnect.l, fDeltaX.f, fDeltaY.f, fDeltaZ.f, fPitchDeg.f, fBankDeg.f, fHeadingDeg.f)
SimConnect_MenuAddItem(hSimConnect.l, szMenuItem.s, MenuEventID.l, dwData.l)
SimConnect_MenuDeleteItem(hSimConnect.l, MenuEventID.l)
SimConnect_MenuAddSubItem(hSimConnect.l, MenuEventID.l, szMenuItem.s, SubMenuEventID.l, dwData.l)
SimConnect_MenuDeleteSubItem(hSimConnect.l, MenuEventID.l, SubMenuEventID.l)
SimConnect_RequestSystemState(hSimConnect.l, RequestID.l, szState.s)
SimConnect_SetSystemState(hSimConnect.l, szState.s, dwInteger.l, fFloat.f, szString.s)
SimConnect_MapClientDataNameToID(hSimConnect.l, szClientDataName.s, ClientDataID.l)
SimConnect_CreateClientData(hSimConnect.l, ClientDataID.l, dwSize.l, flags.l)
SimConnect_AddToClientDataDefinition(hSimConnect.l, DefineID.l, dwOffset.l, dwSizeOrType.l, fEpsilon.f = 0.0, DatumID = #SIMCONNECT_UNUSED)
SimConnect_ClearClientDataDefinition(hSimConnect.l, DefineID.l)
SimConnect_RequestClientData(hSimConnect.l, ClientDataID.l, RequestID.l, DefineID.l, Period = #SIMCONNECT_CLIENT_DATA_PERIOD_ONCE, flags = 0, origin = 0, interval = 0, limit = 0)
SimConnect_SetClientData(hSimConnect.l, ClientDataID.l, DefineID.l, flags.l, dwReserved.l, cbUnitSize.l, pDataSet.l)
SimConnect_FlightLoad(hSimConnect.l, szFileName.s)
SimConnect_FlightSave(hSimConnect.l, szFileName.s, szTitle.s, szDescription.s, flags.l)
SimConnect_FlightPlanLoad(hSimConnect.l, szFileName.s)
SimConnect_Text(hSimConnect.l, type.l, fTimeSeconds.f, EventID.l, cbUnitSize.l, *pDataSet.l)
SimConnect_SubscribeToFacilities(hSimConnect.l, type.l, RequestID.l)
SimConnect_UnsubscribeToFacilities(hSimConnect.l, type.l)
SimConnect_RequestFacilitiesList(hSimConnect.l, type.l, RequestID.l)
EndImport
Code: Select all
XIncludeFile "SimConnect.pb"
Global Quit
Quit = 0
Enumeration
#GROUP_MENU
#GROUP0
EndEnumeration
Enumeration
#DEFINITION_1
EndEnumeration
Enumeration
#REQUEST_1
EndEnumeration
Enumeration 1
#EVENT_BRAKES
#EVENT_TEXT_1
#EVENT_MENU_ONE
#EVENT_MENU_TWO
#EVENT_SIM_START
EndEnumeration
Structure Struct1
title.s{256}
kohlsmann.d
Altitude.d
Latitude.d
Longitude.d
Speed.d
EndStructure
Global menuUseCount
Global SC_handle
Global hr
Global start
Global start1
Global mytext.s
Global *textbuff
Global out.l
Global Quit = 0
mytext = "SkyBeat connect to FSX"
*textbuff = AllocateMemory(StringByteLength(mytext)+1)
PokeS(*textbuff,mytext)
OpenConsole()
Procedure MyDispatchProc1(*pData.SIMCONNECT_RECV, cbData, pContext)
Select *pData\dwID
Case #SIMCONNECT_RECV_ID_EVENT
*evt.SIMCONNECT_RECV_EVENT = *pData
PrintN("EventID = "+Str(*evt\uEventID)+" - "+Str(#SIMCONNECT_TEXT_RESULT_MENU_SELECT_1))
Select *evt\uEventID
Case #EVENT_BRAKES
PrintN("breaks: "+Str(*evt\dwData) )
Case #EVENT_TEXT_1
Select *evt\dwData
Case #SIMCONNECT_TEXT_RESULT_DISPLAYED
EndSelect
Case #EVENT_MENU_ONE
menuUseCount+1
If menuUseCount = 4
hr = SimConnect_MenuDeleteItem(SC_handle, #EVENT_MENU_ONE);
hr = SimConnect_RemoveClientEvent(SC_handle, #GROUP_MENU, #EVENT_MENU_ONE);
hr = SimConnect_MenuAddItem(SC_handle, "SkyBeat Two", #EVENT_MENU_TWO, 54321);
hr = SimConnect_AddClientEventToNotificationGroup(SC_handle, #GROUP_MENU, #EVENT_MENU_TWO,#False);
EndIf
Case #EVENT_SIM_START
hr = SimConnect_RequestDataOnSimObjectType(SC_handle, #REQUEST_1, #DEFINITION_1, 0, #SIMCONNECT_SIMOBJECT_TYPE_USER)
EndSelect
Case #SIMCONNECT_RECV_ID_SIMOBJECT_DATA_BYTYPE
*pObjData.SIMCONNECT_RECV_SIMOBJECT_DATA_BYTYPE = *pData
PrintN(Str(*pObjData\dwDefineCount))
Select *pObjData\dwRequestID
Case #REQUEST_1
ObjectID.l = *pObjData\dwObjectID;
*ps.Struct1 = @*pObjData\dwData
PrintN("Title = "+*ps\title)
PrintN("Lat = "+StrD(*ps\Latitude))
PrintN("Lon = "+StrD(*ps\Longitude))
PrintN("Alt = "+StrD(*ps\Altitude))
PrintN("kohlsmann = "+StrD(*ps\kohlsmann))
PrintN("KIAS = "+StrD(*ps\Speed))
EndSelect
EndSelect
EndProcedure
Procedure testClientEvents()
Protected SC_handle
SimConnect_Open(@SC_handle,"SkyBeat",#Null,0,0,0)
If SC_handle
PrintN("Connected to FSX")
hr = SimConnect_Text(SC_handle, #SIMCONNECT_TEXT_TYPE_SCROLL_RED, 0.0, #EVENT_TEXT_1, Len(mytext)+1, *textbuff)
SimConnect_MapClientEventToSimEvent(SC_handle, #EVENT_BRAKES, "brakes");
SimConnect_AddClientEventToNotificationGroup(SC_handle, #GROUP0, #EVENT_BRAKES,#True)
SimConnect_SetNotificationGroupPriority(SC_handle, #GROUP0, #SIMCONNECT_GROUP_PRIORITY_HIGHEST);
hr = SimConnect_MapClientEventToSimEvent(SC_handle, #EVENT_MENU_ONE,"Custom.Event")
hr = SimConnect_MenuAddItem(SC_handle, "SkyBeat", #EVENT_MENU_ONE, #EVENT_MENU_ONE)
hr = SimConnect_AddClientEventToNotificationGroup(SC_handle, #GROUP0, #EVENT_MENU_ONE,0)
hr = SimConnect_SetNotificationGroupPriority(SC_handle, #GROUP0, #SIMCONNECT_GROUP_PRIORITY_HIGHEST)
hr = SimConnect_AddToDataDefinition(SC_handle, #DEFINITION_1, "Title", "", #SIMCONNECT_DATATYPE_STRING256)
start = GetTickCount_()
start1 = GetTickCount_()
While Quit = 0
If GetTickCount_() - start1 >= 3000
If out = 0
hr = SimConnect_AddToDataDefinition(SC_handle, #DEFINITION_1, "Kohlsman setting hg", "inHg")
hr = SimConnect_AddToDataDefinition(SC_handle, #DEFINITION_1, "Plane Altitude", "feet")
hr = SimConnect_AddToDataDefinition(SC_handle, #DEFINITION_1, "Plane Latitude", "degrees")
hr = SimConnect_AddToDataDefinition(SC_handle, #DEFINITION_1, "Plane Longitude", "degrees")
hr = SimConnect_AddToDataDefinition(SC_handle, #DEFINITION_1, "GROUND VELOCITY", "knots")
hr = SimConnect_RequestDataOnSimObjectType(SC_handle, #REQUEST_1, #DEFINITION_1, 0, #SIMCONNECT_SIMOBJECT_TYPE_USER)
out = 1
EndIf
out = 0
start1 = GetTickCount_()
EndIf
SimConnect_CallDispatch(SC_handle, @MyDispatchProc1(), #Null)
Sleep_(1)
Wend
Else
PrintN("no FSX found "+Str(SC_handle))
EndIf
CloseConsole()
EndProcedure
testClientEvents()