Función RetrieveUrlCacheEntryStreamW (wininet.h)

Proporciona la manera más eficaz e independiente de la implementación de acceder a los datos de caché.

Sintaxis

HANDLE RetrieveUrlCacheEntryStreamW(
  [in]      LPCWSTR                      lpszUrlName,
  [out]     LPINTERNET_CACHE_ENTRY_INFOW lpCacheEntryInfo,
  [in, out] LPDWORD                      lpcbCacheEntryInfo,
  [in]      BOOL                         fRandomRead,
  [in]      DWORD                        dwReserved
);

Parámetros

[in] lpszUrlName

Puntero a una cadena terminada en null que contiene el nombre de origen de la entrada de caché. Debe ser un nombre único. La cadena de nombre no debe contener ningún carácter de escape.

[out] lpCacheEntryInfo

Puntero a una estructura de INTERNET_CACHE_ENTRY_INFO que recibe información sobre la entrada de caché.

[in, out] lpcbCacheEntryInfo

Puntero a una variable que especifica el tamaño, en bytes, del búfer lpCacheEntryInfo . Cuando la función devuelve, la variable recibe el número de bytes copiados en el búfer o el tamaño necesario, en bytes, del búfer. Tenga en cuenta que este tamaño de búfer debe adaptarse tanto a la estructura INTERNET_CACHE_ENTRY_INFO como a las cadenas asociadas que se almacenan inmediatamente después de él.

[in] fRandomRead

Si la secuencia está abierta para el acceso aleatorio. Establezca la marca en TRUE para abrir la secuencia para el acceso aleatorio.

[in] dwReserved

Este parámetro está reservado y debe ser 0.

Valor devuelto

Si la función se ejecuta correctamente, la función devuelve un identificador válido para su uso en las funciones ReadUrlCacheEntryStream y UnlockUrlCacheEntryStream .

Si se produce un error en la función, devuelve NULL. Para obtener información de error extendida, llame a GetLastError.

Entre los valores de error posibles se incluyen los siguientes.

Código devuelto Descripción
ERROR_FILE_NOT_FOUND
La entrada de caché especificada por el nombre de origen no se encuentra en el almacenamiento de caché.
ERROR_INSUFFICIENT_BUFFER
El tamaño de lpCacheEntryInfo especificado por lpdwCacheEntryInfoBufferSize no es suficiente para contener toda la información. El valor devuelto en lpdwCacheEntryInfoBufferSize indica el tamaño del búfer necesario para contener toda la información.

Comentarios

RetrieveUrlCacheEntryStream no realiza ningún análisis de direcciones URL, por lo que no se encontrará una dirección URL que contenga un delimitador (#) en la memoria caché, incluso si el recurso está almacenado en caché. Por ejemplo, si se pasa la dirección URL http://adatum.com/example.htm#sample , la función devuelve ERROR_FILE_NOT_FOUND incluso si http://adatum.com/example.htm está en la memoria caché.

Los clientes de caché que no necesitan datos de dirección URL en forma de archivo deben usar esta función para acceder a los datos de una dirección URL determinada.

Al igual que todos los demás aspectos de la API de WinINet, esta función no se puede llamar de forma segura desde DllMain ni desde los constructores y destructores de objetos globales.

Nota WinINet no admite implementaciones de servidor. Además, no se debe usar desde un servicio. En el caso de las implementaciones de servidor o los servicios, use los servicios HTTP de Microsoft Windows (WinHTTP).
 

Nota:

El encabezado wininet.h define RetrieveUrlCacheEntryStream como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutro de codificación con código que no es neutral de codificación puede provocar discrepancias que dan lugar a errores de compilación o en tiempo de ejecución. Para obtener más información, vea Convenciones para prototipos de función.

Requisitos

   
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado wininet.h
Library Wininet.lib
Archivo DLL Wininet.dll

Consulte también

Almacenamiento en caché

Funciones de WinINet