Los rincones del API Win32: El caché de WinInet - Añadir una entrada al caché

9 - Añadir una entrada al caché

[editar]
Tutorial creado por Juan Manuel. Extraido de: http://www.lawebdejm.com
30 de Noviembre de 1999
Desde nuestros programas también podemos insertar nuevas entradas en el caché, para que el propio Internet Explorer, o cualquier otro programa, pueda utilizarlas.

Esto se hace en tres pasos: crear la entrada, escribir su contenido y guardar y validar todo.

La función para el primer paso es la siguiente:

BOOL CreateUrlCacheEntry( LPCTSTR lpszUrl, DWORD dwTamañoEsperado, LPCTSTR lpszExtensión, LPTSTR lpszArchivoLocal, DWORD dwReservado );

  • lpszUrl: la URL que identificará a la entrada del caché. Posteriormente, podemos localizar la entrada indicando esta URL. No debes incluir parámetros adicionales después del nombre del recurso.
  • dwTamañoEsperado: el tamaño que tienen el recurso que vamos a almacenar, o un cero si no sabemos realmente su tamaño.
  • lpszExtensión: una cadena que contiene la extensión del archivo a almacenar.
  • lpszArchivoLocal: una puntero a una cadena de caracteres donde se almacenará el copiará la ruta y nombre del archivo local donde se va a almacenar el recurso. Este buffer debe ser lo suficientemente grande, de al menos MAX_PATH (255) caracteres.
  • dwReservado: debe ser 0.

La función retorna TRUE o FALSE, dependiendo de su éxito o fracaso.

Una vez que hemos creado la entrada para el recurso, podemos acceder al fichero local con cualquier de los métodos que tenemos disponibles. Se trata de un archivo normal, así que podemos abrirlo con CreateFile, y escribir en él con WriteFile, y cerrarlo con CloseHandle. También podemos hacer uso de los mecanismos del lenguaje, como fopen, fwrite, etc, o las clases de la VCL, como TFileStream.

Y por último, cuando ya tenemos almacenados los datos del recurso, debemos validar todo, y establecer las propiedades de la entrada en el caché, a través de la siguiente función:

BOOL CommitUrlCacheEntry( LPCTSTR lpszUrl, LPCTSTR lpszArchivoLocal, FILETIME FechaCaducidad, FILETIME FechaModificacion, DWORD dwTipo, LPCTSTR lpInformación, DWORD dwLongitudInformación, LPCTSTR lpszReservado, LPCTSTR lpszUrlOriginal );

  • lpszUrl: la URL que hemos indicado en la llamada a CreateUrlCacheEntry.
  • lpszArchivoLocal: el nombre de archivo que hemos obtenido en la llamada a CrearUrlCacheEntry.
  • FechaCaducidad: la fecha a partir de la cual se considera que el recurso ya no es válido. Si no queremos que el recurso caduque, podemos pasar un 0.
  • FechaModificacion: la fecha en que la entrada ha sido introducida en el caché.
  • dwTipo: Una máscara de bits indicando el tipo de recurso. Puede incluirse cualquier valor de los que hemos indicado en el atributo CacheEntryType de la estructura INTERNET_CACHE_ENTRY_INFO.
  • lpInformación: un puntero a una cadena donde se puede almacenar información extra, que será retornada en el atributo lpHeaderInfo de la estructura INTERNET_CACHE_ENTRY_INFO. Si no queremos información extra, podemos pasar el valor NULL.
  • dwLongitudInformacion: la longitud de la cadena "lpInformación".
  • lpszReservado: Debe ser NULL
  • lpszUrlOriginal: Si el recurso es producto de una redirección, debemos pasar aquí la URL original. En caso contrario, podemos pasar el valor NULL.

La función retornará o valor booleano indicando su éxito. En caso de error podemos llamar a GetLastError(), que nos retornará ERROR_DISK_FULL, si se ha alcanzado el límite de espacio reservado para el caché, o ERROR_FILE_NOT_FOUND, si el parámetro lpszArchivoLocal contiene un nombre de archivo que no ha sido creado con CreateUrlCacheEntry.
[editar]

Sé el primero en opinar


Tutoriales relacionados con 'Los rincones del API Win32: El caché de WinInet'

Damos una visión detallada de una de las características más interesantes de esta tecnología de... Más »
El protocolo FTP desde el API WinInet. Con este curso aprenderás a hacer un pequeño... Más »
Comienzo con un nuevo tema dentro dentro de la serie Los rincones del API Win32.... Más »
Entramos en temas interesantes: el acceso a recursos remotos a través del protocolo de aplicación... Más »
En el anterior curso dejamos muchos temas en el tintero, así que voy a terminar... Más »

Autor y licencia de 'Los rincones del API Win32: El caché de WinInet'


Tutorial de Juan Manuel. Extraido de: http://www.lawebdejm.com CopyLeft
Este contenido ha sido recopilado por el equipo de Wikilearning. Todo el contenido recopilado se ha obtenido respetando y comunicando en nuestro site la licencia de cada fuente.
Wikilearning tiene permiso expreso por escrito de los autores para publicar los contenidos que ha extraído de otras webs, incluyendo su uso comercial.