Home COM GDI+ WebBrowser Data Access

IEnumSTATPROPSTG Interface

 

IID_IEnumSTATPROPSTG

{00000139-0000-0000-C000-000000000046}

 

 

The IEnumSTATPROPSTG interface iterates through an array of STATPROPSTG structures. The STATPROPSTG structures contain statistical data about properties in a property set.

 

The implementation defines the order in which the properties in the set are enumerated. Properties that are present when the enumerator is created, and are not removed during the enumeration, will be enumerated only once. Properties added or deleted while the enumeration is in progress may or may not be enumerated, but will never be enumerated more than once.

 

Reserved property identifiers, properties with a property ID of 0 (dictionary), 1 (code page indicator), or greater than or equal to 0x80000000 are not enumerated.

 

Enumeration of a nonsimple property does not necessarily indicate that the property can be read successfully through a call to IPropertyStorage::ReadMultiple. This is because the performance overhead of checking existence of the indirect stream or storage is prohibitive during property enumeration.

 

Applications that support storage objects, and persistent properties within those objects, call IPropertyStorage::Enum to return a pointer to IEnumSTATPROPSTG to enumerate the properties in the current property set.

 

 

Methods in VTable order

IUnknown Methods

Description

QueryInterface

Returns pointers to supported interfaces.

AddRef

Increments reference count.

Release

Decrements reference count.

IEnumSTATPROPSTG Methods

Description

Next

Gets a specified number of STATPROPSTG structures.

Skip

Skips a specified number of STATPROPSTG structures in the enumeration sequence.

Reset

Resets the enumeration sequence to the beginning of the STATPROPSTG structure array.

Clone

Creates an enumerator that contains the same enumeration state as the current STATPROPSTG structure enumerator.

 

QueryInterface

 

FUNCTION IEnumSTATPROPSTG_QueryInterface ( _

  BYVAL pthis AS DWORD PTR _

, BYREF riid AS GUID _

, BYREF ppvObj AS DWORD _

  ) AS LONG


  LOCAL HRESULT AS LONG
  CALL DWORD @@pthis[0] USING IEnumSTATPROPSTG_QueryInterface (pthis, riid, ppvObj) TO HRESULT
  FUNCTION = HRESULT
 

END FUNCTION

 

 

AddRef

 

FUNCTION IEnumSTATPROPSTG_AddRef ( _

  BYVAL pthis AS DWORD PTR _

  ) AS DWORD
 

  LOCAL DWRESULT AS LONG
  CALL DWORD @@pthis[1] USING IEnumSTATPROPSTG_AddRef (pthis) TO DWRESULT
  FUNCTION = DWRESULT
 

END FUNCTION

 

 

Release

 

FUNCTION IEnumSTATPROPSTG_Release ( _

  BYVAL pthis AS DWORD PTR _

  ) AS DWORD
 

  LOCAL DWRESULT AS DWORD
  CALL DWORD @@pthis[2] USING IEnumSTATPROPSTG_Release (pthis) TO DWRESULT
  FUNCTION = DWRESULT
 

END FUNCTION

 

 

STATPROPSTG Structure

 

TYPE STATPROPSTG
  
lpwstrName AS DWORD
  
propid AS LONG
  
vt AS WORD
  
wFill AS WORD ' For DWORD alignment
END TYPE
 

 

Next

 

FUNCTION IEnumSTATPROPSTG_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 IEnumSTATPROPSTG_Next (pthis, celt, rgelt, pceltFetched) TO HRESULT
  FUNCTION = HRESULT

END FUNCTION

 

 

Skip

 

FUNCTION IEnumSTATPROPSTG_Skip ( _

  BYVAL pthis AS DWORD PTR _

, BYVAL celt AS DWORD _

  ) AS LONG

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

END FUNCTION

 

 

Reset

 

FUNCTION IEnumSTATPROPSTG_Reset ( _

  BYVAL pthis AS DWORD PTR _

  ) AS LONG

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

END FUNCTION

 

 

Clone

 

FUNCTION IEnumSTATPROPSTG_Clone ( _

  BYVAL pthis AS DWORD PTR _

, BYREF ppenum AS DWORD _

  ) AS LONG

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

END FUNCTION

 

 

Page last updated on Monday, 27 March 2006 11:19:50 +0100