MIDL ne supporte pas vraiment les paramètres de référence, il ne supporte que les paramètres "dans" et "out". Donc si vous passez une référence, c'est juste du sucre syntaxique pour un pointeur vers la valeur (le problème est l'observabilité - si vous avez une fonction callback ou une interface dans notre signature de méthode, les changements à une référence seront observables, mais des modifications à un Si vous regardez la définition de REFGUID paramètre ne sont pas visibles jusqu'à ce que la fonction retourne.
En outre, la différence entre « & const » et « const & » sont perdus [out]., vous aurez voir qu'ils n'utilisent une forme de « const » pour le code C++:
#ifdef __midl_proxy
#define __MIDL_CONST
#else
#define __MIDL_CONST const
#endif
#ifndef _REFGUID_DEFINED
#define _REFGUID_DEFINED
#ifdef __cplusplus
#define REFGUID const GUID &
#else
#define REFGUID const GUID * __MIDL_CONST
#endif
#endif
d3d11.idl utilise REFGUID:/Je ne sais pas comment se sentir sur ce o o o plutôt bien je suppose que ça fonctionne; La question se pose toujours parce que je ne vois pas comment REFGUID est même possible si vous ne pouvez pas et pourtant je ne peux pas sembler ni trouver un exemple ...... –
Qu'est-ce que Paul a changé ?? Ai-je utilisé un est au lieu d'un? Je le fais parfois ... –