Export (0) Print
Expand All

IDispatchEx::GetNextDispID

Enumerates the members of the object.

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

grfdex

Determines which set of items are to be enumerated. This can be a combination of the following values:

Value

Meaning

fdexEnumDefault

Requests that the object enumerates the default elements. The object is allowed to enumerate any set of elements.

fdexEnumAll

Requests that the object enumerates all of the elements. The object is allowed to enumerate any set of elements.

id

Identifies the current member. GetNextDispID retrieves the item in the enumeration after this one. Uses GetDispID or a previous call to GetNextDispID to obtain this identifier. Uses the DISPID_STARTENUM value to obtain the first identifier of the first item.

pid

Address of a DISPID variable that receives the identifier of the next item in the enumeration.

If a member is deleted by DeleteMemberByName or DeleteMemberByDispID, the DISPID needs to remain valid for GetNextDispID.

Returns one of the following values:

S_OK

Success.

S_FALSE

Enumeration is done.

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);
   }
Show:
© 2015 Microsoft