Salut,
je rencontre un problème d'adaptation de type sur un portage d'API Win32 sous PowerShell (type .NET+ P/Invoke).
Par défaut sous PowerShell un nombre est considéré comme un entier signé (System.Int32).

Je viens d'installer le SDK 6.1 pour accéder aux déclarations présentes dans le fichier WinUser.h, mais je ne sais pas comment interpréter les différents types des valeurs déclarées.
Enfin plus précisement :
-quel est le type par défaut sur la directive define suivante ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
ICON_SMALL = 0 #define ICON_SMALL 0
-quel est le type par défaut sur celle-ci ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
GWL_WNDPROC = -4 #define GWL_WNDPROC (-4)
-quelle différence pourrait-il y avoir entre
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
#define SWP_NOSIZE 0x0001
et
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
#define SWP_NOSIZE 1
- la déclaration suivante précise un long, est-ce à dire >32 bit ? Dans ce cas quel type utiliser sous .NET ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
#define MF_BYPOSITION 0x00000400L
Autre question, les valeurs de groupes tels que GWL_xxx ou WS_xxx peuvent-elles être utilisés, et couplés, indifférement selon les API ou sont-elles spécifiques à certaines API et donc aux types du paramètre les référençant ?
A savoir, si telle constante est déclarée comme un type entier signé, sera-t-elle toujours considérée comme tel même si plusieurs API utilisent cette constante ?

Merci