Types autorisés
Remonter à Utilisation de l'éditeur de bibliothèques de types
Dans l'éditeur de bibliothèques de types, vous utilisez des identificateurs de types différents, selon que vous travaillez en IDL ou en Delphi. Spécifiez le langage que vous voulez utiliser dans la boîte de dialogue Options d'environnement.
Les types suivants sont autorisés dans une bibliothèque de types pour le développement COM. La colonne Compatible Automation spécifie si le type peut être utilisé par une interface dont l'indicateur Automation ou Dispinterface est activé. COM utilise automatiquement le marshalling pour les types suivants via la bibliothèque de types :
Type Delphi | Type IDL | Type variant | Compatible Automation | Description |
---|---|---|---|---|
Smallint |
short |
VT_I2 |
Oui |
entier signé sur 2 octets |
Integer |
long |
VT_I4 |
Oui |
entier signé sur 4 octets |
Unique |
single |
VT_R4 |
Oui |
Réel sur 4 octets |
Double |
double |
VT_R8 |
Oui |
Réel sur 8 octets |
Currency |
CURRENCY |
VT_CY |
Oui |
monétaire |
TDateTime |
DATE |
VT_DATE |
Oui |
date |
WideString |
BSTR |
VT_BSTR |
Oui |
chaîne binaire |
IDispatch |
IDispatch |
VT_DISPATCH |
Oui |
pointeur sur une interface IDispatch |
SCODE |
SCODE |
VT_ERROR |
Oui |
code d'erreur OLE |
WordBool |
VARIANT_BOOL |
VT_BOOL |
Oui |
Vrai = -1, faux = 0 |
OleVariant |
VARIANT |
VT_VARIANT |
Oui |
Variant OLE |
IUnknown |
IUnknown |
VT_UNKNOWN |
Oui |
Pointeur sur une interface IUnknown |
Shortint |
byte |
VT_I1 |
Non |
Entier signé sur 1 octets |
Byte |
unsigned char |
VT_UI1 |
Oui |
Entier non signé sur 1 octets |
Word |
unsigned short |
VT_UI2 |
Oui* |
Entier non signé sur 2 octets |
LongWord |
unsigned long |
VT_UI4 |
Oui* |
Entier non signé sur 4 octets |
Int64 |
__int64 |
VT_I8 |
Non |
Entier signé sur 8 octets |
Largeuint |
uint64 |
VT_UI8 |
Non |
Entier non signé sur 8 octets |
SYSINT |
int |
VT_INT |
Oui* |
Entier dépendant du système (Win32=Integer) |
SYSUINT |
unsigned int |
VT_UINT |
Oui* |
Entier non signé dépendant du système |
HResult |
HRESULT |
VT_HRESULT |
Non |
Code d'erreur 32 bits |
Pointer |
VT_PTR -> VT_VOID |
Non |
pointeur non typé | |
SafeArray |
SAFEARRAY |
VT_SAFEARRAY |
Non |
Tableau protégé OLE |
PAnsiChar |
LPSTR |
VT_LPSTR |
Non |
Pointeur sur un Char |
PChar |
LPWSTR |
VT_LPWSTR |
Non |
Pointeur sur un WideChar |
PWideChar |
LPWSTR |
VT_LPWSTR |
Non |
Pointeur sur un WideChar |
- Word, LongWord, SYSINT et SYSUINT peuvent être compatibles Automation dans certaines applications.
Pour plus d'informations sur le type variant SAFEARRAY, voir Tableaux sécurisés.
Remarque : Le type Byte (VT_UI1) est compatible avec l'Automation, mais il n'est pas autorisé dans un Variant ou un OleVariant car de nombreux serveurs Automation ne gèrent pas correctement cette valeur.
Outre ces types, toute interface ou type défini dans la bibliothèque ou dans les bibliothèques référencées peut s'utiliser dans une définition de bibliothèque de types.
L'éditeur de bibliothèques de types stocke les informations de type dans le fichier (.TLB) de bibliothèque de types générée sous forme binaire.
Si un paramètre est de type Pointer, l'éditeur de bibliothèques de types le convertit généralement en paramètre variable. Quand la bibliothèque de types est enregistrée, les indicateurs IDL des ElemDesc associés aux paramètres variable sont marqués IDL_FIN ou IDL_FOUT.
Souvent, les indicateurs IDL ElemDesc ne sont pas marqués par IDL_FIN ni par IDL_FOUT lorsque le type est précédé d'un pointeur. De même, s'il s'agit de dispinterfaces, les indicateurs IDL ne sont généralement pas utilisés. Dans ces situations, on peut voir à côté de l'identificateur de variable un commentaire comme {IDL_None} ou {IDL_In}. Ces commentaires sont utilisés lors de l'enregistrement d'une bibliothèque de types, pour marquer correctement les indicateurs IDL.