# ISpecifyPropertyPages::GetPages

Fills a counted array of GUID values where each GUID specifies the CLSID of each property page that can be displayed in the property sheet for this object.

HRESULT GetPages(

CAUUID *pPages | //Pointer to structure
); |

Parameters

pPages
  [out] Pointer to a caller-allocated CAUUID structure that must be initialized and filled before returning. The pElems field in the CAUUID structure is allocated by the callee with CoTaskMemAlloc and freed by the caller with CoTaskMemFree.

Return Values

This method supports the standard return values E_OUTOFMEMORY and E_UNEXPECTED, as well as the following:

S_OK
  The array was filled successfully.
E_POINTER
  The address in pPages is not valid. For example, it may be NULL.

Remarks

The CAUUID structure is caller-allocated, but is not initialized by the caller. The ISpecifyPropertyPages::GetPages method fills the cElements field in the CAUUID structure. This method also allocates memory for the array pointed to by the pElems field in CAUUID using CoTaskMemAlloc. Then, it fills the newly allocated array. After this method returns successfully, the structure contains a counted array of UUIDs, each UUID specifying a property page CLSID.

#### Notes to Callers

The caller must release the memory pointed to by the pElems field of CAUUID, using CoTaskMemFree when it is no longer needed.

#### Notes to Implementers

E_NOTIMPL is not allowed as a return value since an object with no property pages should not expose the ISpecifyPropertyPages interface at all.

See Also

CAUUID, CoTaskMemAlloc, CoTaskMemFree, OleCreatePropertyFrame, OleCreatePropertyFrameIndirect