Bonjour à tous,

Je suis actuellement en train d'écrire en Windev un logiciel de connexion à SimConnect pour récupérer et commander un simulateur (MSFX2020).

Pour ce faire, j'essaie de retrouver des bots de codes écrits en C++ et les transposer en Windev car je n'ai pas trouver d'exemple ou d'explication pour les appels API de SimConnect.dll en Windev.

J'ai donc un bout de code et je ne comprends pas très bien certains syntaxes.
Dans le code ci-dessous j'ai notamment 2 lignes qui me posent problème :

Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
                pObjData = (SIMCONNECT_RECV_SIMOBJECT_DATA*)pData;
                pDataRefs = (DataRefs*)&pObjData->dwData;

J'ai donc besoin d'information pour savoir ce que fait chaque ligne afin de trouver la syntaxe Windev correspondante.

Une explication simple me se serait très utile.
Si vous avez des URL de sites qui traitent de ce sujet ou qui explique en language Windev, ma la manière de faire je serais également très intéressé.

En vous remerciant d'avance.
Didier

Voici la petite routine d'où j'ai extrait ces deux lignes :

Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#include <iostream>
#include <Windows.h>
#include "SimConnect.h"
#include <string>
#include <sstream>
using namespace std;
 
 
 
 
HANDLE hSimConnect = NULL;
 
 
 
 
enum DATA_DEFINE_ID
{
    DEFINITION_ID_AP,
};
 
enum DATA_REQUEST_ID
{
    REQUEST_AP_SETTINGS,
};
 
enum EVENT_ID
{
    EVENT_SET_AP_ALTITUDE,
};
 
 
 
struct DataRefs
{
    double altitude;
    double knots;
};
 
int main() {
 
        HRESULT hr;
        SIMCONNECT_RECV* pData = NULL;
        DWORD cbData = 0;
        bool bRequestProcessed = false;
        int SelectedAltitude = 0;
        SIMCONNECT_RECV_SIMOBJECT_DATA* pObjData = NULL;
        DataRefs* pDataRefs = NULL;
 
        if (SUCCEEDED(SimConnect_Open(&hSimConnect, "Client Event", NULL, NULL, NULL, NULL))) {
            printf("Connected to MSFS2020!\n");
        }
        else {
 
            printf("Failed to Connect to MSFS2020\n");
 
        }
        //simVars
        hr = SimConnect_AddToDataDefinition(hSimConnect, DEFINITION_ID_AP, "PLANE ALTITUDE", "Feet");
 
        // Check simVars
        hr = SimConnect_RequestDataOnSimObject(hSimConnect, REQUEST_AP_SETTINGS, DEFINITION_ID_AP, SIMCONNECT_OBJECT_ID_USER, SIMCONNECT_PERIOD_ONCE);
        if (FAILED(hr))
        {
            printf("RequestDataOnSimObject for AutopilotData structure - error\n");
        }
        bRequestProcessed = false;
        while (!bRequestProcessed)
        {
            hr = SimConnect_GetNextDispatch(hSimConnect, &pData, &cbData);
            if (SUCCEEDED(hr))
            {
 
                pObjData = (SIMCONNECT_RECV_SIMOBJECT_DATA*)pData;
                pDataRefs = (DataRefs*)&pObjData->dwData;
 
                //This line of code is what im referring to
                printf("\rCurrent  altitude: %.f feet", pDataRefs->altitude);
 
            }
        }
 
        // Close
        hr = SimConnect_Close(hSimConnect);
 
    return 0;
}