IWMSCacheItems::get_Item

The get_Item method retrieves an IWMSCacheItemIWMSCacheItem Interface, as specified by the index.

HRESULT get_Item(
  const VARIANT  varIndex,
  IWMSCacheItem**  pVal
);

Arguments

varIndex

[in] VARIANT that contains the index of an IWMSCacheItem interface.

pVal

[out] Pointer to a pointer to an IWMSCacheItem interface. This method calls AddRef internally. To avoid memory leaks, you must call Release when you are finished using the interface.

Return Value

If the method succeeds, it returns S_OK. If it fails, it returns an HRESULT error code.

Return code

Number

Description

DISP_E_BADINDEX

0x8002000B

varIndex is not a valid index location.

E_POINTER

0x80004003

pVal is a NULL pointer argument.

Example

#include <windows.h>
#include <atlbase.h>    // Includes CComVariant.
#include "wmsserver.h"

// Declare variables and interfaces.
IWMSServer                  *pServer;
IWMSPlugins                 *pPlugins;
IWMSPlugin                  *pPlugin;
IWMSCacheProxyPlugin        *pCacheProxyPlugin;
IWMSCacheItems              *pCacheItems;
IWMSCacheItem               *pCacheItem;

HRESULT         hr;
CComVariant     varIndex;
CComVariant     varContentSize;
long            lCount;

// Initialize the COM library and retrieve a pointer
// to an IWMSServer interface.
hr = CoInitialize(NULL);
hr = CoCreateInstance(CLSID_WMSServer,
                      NULL,
                      CLSCTX_ALL,
                      IID_IWMSServer,
                      (void **)&pServer);
if (FAILED(hr)) goto EXIT;

// Retrieve a pointer to an IWMSPlugins interface
// containing cache proxy plug-ins.
hr = pServer->get_CacheProxy(&pPlugins);
if (FAILED(hr)) goto EXIT;
hr = pPlugins->get_Count(&lCount);
if (FAILED(hr)) goto EXIT;

// Retrieve the IWMSPlugin interface for the
// first cache proxy plug-in.
varIndex = 0;
hr = pPlugins->get_Item(varIndex, &pPlugin);
if (FAILED(hr)) goto EXIT;

// Retrieve a pointer to the IWMSCacheProxyPlugin interface.
hr = pPlugin->QueryInterface(IID_IWMSCacheProxyPlugin,
                            (void **)&pCacheProxyPlugin);
if (FAILED(hr)) goto EXIT;

// Retrieve a pointer to the IWMSCacheItems interface,
// and retrieve the count of cache items.
hr = pCacheProxyPlugin->get_CacheItems(&pCacheItems);
if (FAILED(hr)) goto EXIT;
hr = pCacheItems->get_Count(&lCount);
if (FAILED(hr)) goto EXIT;

// Retrieve information on each cache item.
for (long x = 0; x < lCount; x++) {
    varIndex = x;
    hr = pCacheItems->get_Item(varIndex, &pCacheItem);
    if (FAILED(hr)) goto EXIT;
    hr = pCacheItem->get_ContentSize(&varContentSize);
    if (FAILED(hr)) goto EXIT;

    // Release temporary COM objects.
    pCacheItem->Release();
}

EXIT:
    // TODO: Release temporary COM objects and uninitialize COM.

Requirements

Header: wmsserver.h.

Library: WMSServerTypeLib.dll.

Platform: Windows Server 2003 family, Windows Server 2008 family.

See Also

Reference

IWMSCacheItem Interface

IWMSCacheItems Interface