Retrieves an object from various collections, including the all collection.
Syntax
|
HRESULT item( VARIANT name,
VARIANT index,
IDispatch **pdisp
); |
Parameters
- name
-
[in] VARIANT of type VT_I4 or VT_BSTR that specifies the object or collection to retrieve. If this parameter is an integer, it is the zero-based index of the object. If this parameter is a string, all objects with matching name or id properties are retrieved, and a collection is returned if more than one match is made.
- index
-
[in] VARIANT of type VT_I4 that specifies the zero-based index of the object to retrieve when a collection is returned.
- pdisp
-
[out, retval] The address of a pointer that receives an IDispatch interface for the object or collection if successful, or NULL otherwise.
Return Value
Returns S_OK if successful, or an error value otherwise.
Remarks
Call QueryInterface on the IDispatch interface pointer retrieved to pdisp to obtain the correct interface for the object or collection.
This function returns S_OK even if the element is not found. You should check the value of the pdisp (IDispatch) pointer returned by this call. If the value of the pointer is NULL, the element was not found and the call was not successful.
Examples
The following example shows how to use the IHTMLSelectElement::length property and IHTMLSelectElement::item method to iterate through the option objects within a select object.
|
HRESULT GetOptions(IHTMLSelectElement *ppvSelect, BSTR *pszOptText, long *plItems)
{
IDispatch *ppvdispOption;
IHTMLOptionElement *ppvOption;
HRESULT hResult;
// Obtain the number of option objects in the select object.
ppvSelect->get_length(plItems);
for (long i=0;i<*plItems;i++){
// Get an IDispatch interface for the next option.
_variant_t index = i;
hResult = ppvSelect->item( index, index, &ppvdispOption );
if FAILED(hResult) return(hResult);
// Query for the IHTMLOptionElement interface.
hResult = ppvdispOption->QueryInterface( IID_IHTMLOptionElement,
(void **) &ppvOption);
ppvdispOption->Release();
if FAILED(hResult) return(hResult);
// Add the option text to a list box.
hResult = ppvOption->get_text(&(pszOptText[i]));
ppvOption->Release();
if FAILED(hResult) return(hResult);
}
return S_OK;
} |