Bonjour tout le monde !

Je convertis actuellement des fichier .h rédigés en C++ vers du VB pour pouvoir communiquer avec une carte PCI via un programme réalisé avec VB2008EE.

Je suis tombé sur une "X-Macro" que je n'arrive pas à rédiger en VB.
Après avoir trouvé de la doc sur ce type de macro en C/C++, j'ai tenté de trouvé des explications sur l'éventuelle correspondance en VB, sans succès pour l'heure.

Quelqu'un pourrait-il me donner un coup de pouce en me renvoyant vers des explications que j'aurais loupé ou en me proposant un début de solution en VB ?

En vous remerciant d'avance !

Le code en C++ :

Code : 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
 
#define T_ERROR_CLASS_FIELDS \
    T_X( STANDARD, 0, "standard") \
    T_X( BOARD_A, 1, "board a") \
    T_X( DRIVER, 2, "driver") 
 
typedef enum{
#define T_X(name, value, string) name##_NEWVALUE = value * 10000,
    T_ERROR_CLASS_FIELDS
#undef T_X
}T_ERROR_CLASS;
 
#define T_ERROR_CODE_FIELDS \
    T_X( T_SUCCESS, 0, STANDARD, "success") \
    T_X( T_ERROR, 1, STANDARD, "error") \
 
#define T_RC_FIELDS \
    T_X( RC_NO_ERROR, 0, BOARD_A, "success") \
	T_X( RC_ERROR, 1, BOARD_A, "error") \
 
#define T_DRIVER_ERROR_FIELDS \
T_X( T_DRV_NO_ERROR, 0, DRIVER, "success") \
T_X( T_DRV_ERROR, 1, DRIVER, "error") \
 
#define T_ALL_ERROR_FIELDS \
    T_ERROR_CODE_FIELDS \
    T_RC_FIELDS \
    T_DRIVER_ERROR_FIELDS
 
#define T_ERROR_FROM_CLASS_ERROR(class, error) (error + class##_NEWVALUE)
 
#define T_X(name, value, class, string) name = T_ERROR_FROM_CLASS_ERROR(class, value),
 
typedef enum{
    T_ALL_ERROR_FIELDS
}T_ERROR;
#undef T_X

PS:

Une idée pour la conversion/le fonctionnement en VB de :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
 
#include <winioctl.h>