Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Lorsque vous utilisez [des pointeurs de référence]uniquement dans Microsoft RPC, les stubs de serveur générés allouent uniquement le premier niveau de pointeurs accessibles à partir du pointeur de référence. Les pointeurs à des niveaux plus approfondis ne sont pas alloués par les stubs, mais doivent être alloués par la couche d’application serveur. Par exemple, supposons qu’une interface spécifie un [outtableau ]uniquement de pointeurs de référence :
/* IDL file (fragment) */
typedef [ref] short * PREF;
Proc1([out] PREF array[10]);
Dans cet exemple, le stub du serveur alloue de la mémoire pour 10 pointeurs et définit la valeur de chaque pointeur sur Null. L’application serveur doit allouer la mémoire pour les 10 entiers courts référencés par les pointeurs, puis définir les 10 pointeurs sur les entiers.
Lorsque la [outstructure de données ]-only inclut des pointeurs de référence imbriqués, les stubs de serveur allouent uniquement le premier pointeur accessible à partir du pointeur de référence. Par exemple:
/* IDL file (fragment) */
typedef struct
{
[ref] small * psValue;
} STRUCT1_TYPE;
typedef struct
{
[ref] STRUCT1_TYPE * ps1;
} STRUCT_TOP_TYPE;
Proc2([out, ref] STRUCT_TOP_TYPE * psTop);
Dans l’exemple précédent, les stubs de serveur allouent le pointeur psTop et la structure STRUCT_TOP_TYPE. Le pointeur de référence ps1 dans STRUCT_TOP_TYPE a la valeur Null. Le stub du serveur n’alloue pas chaque niveau de la structure de données, ni n’alloue le STRUCT1_TYPE ou son pointeur incorporé, psValue.