IDispatchEx::GetNextDispIDIDispatchEx::GetNextDispID

Énumère les membres de l’objet.Enumerates the members of the object.

SyntaxeSyntax

HRESULT GetNextDispID(
   DWORD grfdex,
   DISPID id,
   DISPID *pid
);

ParamètresParameters

grfdex
Détermine quel jeu d’éléments sont à énumérer.Determines which set of items are to be enumerated. Cela peut être une combinaison des valeurs suivantes :This can be a combination of the following values:

ValueValue SignificationMeaning
fdexEnumDefaultfdexEnumDefault Demande que l’objet énumère les éléments par défaut.Requests that the object enumerates the default elements. L’objet est autorisé à énumérer n’importe quel jeu d’éléments.The object is allowed to enumerate any set of elements.
fdexEnumAllfdexEnumAll Demande que l’objet énumère tous les éléments.Requests that the object enumerates all of the elements. L’objet est autorisé à énumérer n’importe quel jeu d’éléments.The object is allowed to enumerate any set of elements.

id
Identifie le membre actuel.Identifies the current member. GetNextDispID récupère l’élément dans l’énumération après celui-ci.GetNextDispID retrieves the item in the enumeration after this one. Utilise GetDispID ou un appel précédent à GetNextDispID pour obtenir cet identificateur.Uses GetDispID or a previous call to GetNextDispID to obtain this identifier. Utilise la valeur DISPID_STARTENUM pour obtenir le premier identificateur du premier élément.Uses the DISPID_STARTENUM value to obtain the first identifier of the first item.

pid
Adresse d’une variable DISPID qui reçoit l’identificateur de l’élément suivant dans l’énumération.Address of a DISPID variable that receives the identifier of the next item in the enumeration.

Si un membre est supprimé par DeleteMemberByName ou DeleteMemberByDispID, le DISPID doit rester valide pour GetNextDispID.If a member is deleted by DeleteMemberByName or DeleteMemberByDispID, the DISPID needs to remain valid for GetNextDispID.

Valeur de retourReturn Value

Retourne une des valeurs suivantes :Returns one of the following values:

S_OK Opération réussie.Success.
S_FALSE L’énumération est effectuée.Enumeration is done.

ExempleExample

   HRESULT hr;
   BSTR bstrName;
   DISPID dispid;
   IDispatchEx *pdex;

   // Assign to pdex
   hr = pdex->GetNextDispID(fdexEnumAll, DISPID_STARTENUM, &dispid);
   while (hr == NOERROR)
   {
      hr = pdex->GetMemberName(dispid, &bstrName);
      if (!wcscmp(bstrName, OLESTR("Bar")))
      {
         SysFreeString(bstrName);
         return TRUE;
      }
      SysFreeString(bstrName);
      hr = pdex->GetNextDispID(fdexEnumAll, dispid, &dispid);
   }

Voir aussiSee also