Home COM GDI+ WebBrowser Data Access

IEnumUnknown Interface

 

IID_IEnumUnknown

{00000100-0000-0000-C000-000000000046}

 

 

This enumerator enumerates objects with the IUnknown interface. It can be used to enumerate through the objects in a component containing multiple objects.

 

Call the methods of IEnumUnknown to enumerate the objects in a compound document, when you get a pointer to the interface on the enumerator through a call to IOleContainer::EnumObjects.

 

 

Methods in VTable order

IUnknown Methods

Description

QueryInterface

Returns pointers to supported interfaces.

AddRef

Increments reference count.

Release

Decrements reference count.

IEnumUnknown Methods

Description

Next

Gets the next items in the enumeration sequence.

Skip

Attempts to skip over the next celt elements in the enumeration sequence.

Reset

Resets the enumeration sequence to the beginning.

Clone

Creates a copy of the current state of enumeration.

 

Next

 

FUNCTION IEnumUnknown_Next ( _

  BYVAL pthis AS DWORD PTR _

, BYVAL celt AS DWORD _

, BYVAL rgelt AS DWORD _

, BYREF pceltFetched AS DWORD _

  ) AS LONG
 

  LOCAL HRESULT AS LONG
  CALL DWORD @@pthis[3] USING IEnumUnknown_Next (pthis, celt, rgelt, pceltFetched) TO HRESULT
  FUNCTION = HRESULT
 

END FUNCTION

 

 

 

FUNCTION IEnumUnknown_Next ( _

  BYVAL pthis AS DWORD PTR _

, BYVAL celt AS DWORD _

, BYVAL rgelt AS DWORD _

, BYREF pceltFetched AS DWORD _

  ) AS LONG
 

  ! push pceltFetched
  ! push rgelt
  ! push celt
  ! mov  eax, pthis
  ! push eax
  ! mov  eax, dword ptr[eax]
  ! call dword ptr[eax+12]
  ! mov FUNCTION, eax

 

END FUNCTION

 

 

Skip

 

FUNCTION IEnumUnknown_Skip ( _

  BYVAL pthis AS DWORD PTR _

, BYVAL celt AS DWORD _

  ) AS LONG
 

  LOCAL HRESULT AS LONG
  CALL DWORD @@pthis[4] USING IEnumUnknown_Skip (pthis, celt) TO HRESULT
  FUNCTION = HRESULT
 

END FUNCTION

 

 

 

FUNCTION IEnumUnknown_Skip ( _

  BYVAL pthis AS DWORD PTR _

, BYVAL celt AS DWORD _

  ) AS LONG
 

  ! push celt
  ! mov  eax, pthis
  ! push eax
  ! mov  eax, dword ptr[eax]
  ! call dword ptr[eax+16]
  ! mov  FUNCTION, eax

 

END FUNCTION

 

 

Reset

 

FUNCTION IEnumUnknown_Reset ( _

  BYVAL pthis AS DWORD PTR _

  ) AS LONG
 

  LOCAL HRESULT AS LONG
  CALL DWORD @@pthis[5] USING IEnumUnknown_Reset (pthis) TO HRESULT
  FUNCTION = HRESULT
 

END FUNCTION

 

 

 

FUNCTION IEnumUnknown_Reset ( _

  BYVAL pthis AS DWORD PTR _

  ) AS LONG
 

  ! mov  eax, pthis
  ! push eax
  ! mov  eax, dword ptr[eax]
  ! call dword ptr[eax+20]
  ! mov  FUNCTION, eax

 

END FUNCTION

 

 

Clone

 

FUNCTION IEnumUnknown_Clone ( _

  BYVAL pthis AS DWORD PTR _

, BYVAL ppenum AS DWORD _

  ) AS LONG
 

  LOCAL HRESULT AS LONG
  CALL DWORD @@pthis[6] USING IEnumUnknown_Clone (pthis, ppenum) TO HRESULT
  FUNCTION = HRESULT
 

END FUNCTION

 

 

 

FUNCTION IEnumUnknown_Clone ( _

  BYVAL pthis AS DWORD PTR _

, BYVAL ppenum AS DWORD _

  ) AS LONG
 

  ! push ppenum
  ! mov  eax, pthis
  ! push eax
  ! mov  eax, dword ptr[eax]
  ! call dword ptr[eax+24]
  ! mov  FUNCTION, eax

 

END FUNCTION

 

 

Page last updated on Monday, 03 April 2006 20:23:51 +0200