Función UpdateResourceW (winbase.h)

Agrega, elimina o reemplaza un recurso en un archivo ejecutable portátil (PE). Hay algunas restricciones en las actualizaciones de recursos en archivos que contienen datos de configuración de recursos (RC Config): archivos de recursos neutros (LN) y archivos de recursos específicos del idioma (.mui).

Sintaxis

BOOL UpdateResourceW(
  [in]           HANDLE  hUpdate,
  [in]           LPCWSTR lpType,
  [in]           LPCWSTR lpName,
  [in]           WORD    wLanguage,
  [in, optional] LPVOID  lpData,
  [in]           DWORD   cb
);

Parámetros

[in] hUpdate

Tipo: HANDLE

Identificador de módulo devuelto por la función BeginUpdateResource , que hace referencia al archivo que se va a actualizar.

[in] lpType

Tipo: LPCTSTR

Tipo de recurso que se va a actualizar. Como alternativa, en lugar de un puntero, este parámetro puede ser MAKEINTRESOURCE(ID), donde ID es un valor entero que representa un tipo de recurso predefinido. Si el primer carácter de la cadena es un signo de libra (#), los caracteres restantes representan un número decimal que especifica el identificador entero del tipo de recurso. Por ejemplo, la cadena "#258" representa el identificador 258.

Para obtener una lista de los tipos de recursos predefinidos, consulte Tipos de recursos.

[in] lpName

Tipo: LPCTSTR

Nombre del recurso que se va a actualizar. Como alternativa, en lugar de un puntero, este parámetro puede ser MAKEINTRESOURCE(ID), donde ID es un identificador de recurso. Al crear un nuevo recurso, no se usa una cadena que comience con un carácter "#" para este parámetro.

[in] wLanguage

Tipo: WORD

Identificador de idioma del recurso que se va a actualizar. Para obtener una lista de los identificadores de idioma principal y los identificadores de sublanguaje que componen un identificador de idioma, consulte la macro MAKELANGID .

[in, optional] lpData

Tipo: LPVOID

Los datos de recursos que se van a insertar en el archivo indicado por hUpdate. Si el recurso es uno de los tipos predefinidos, los datos deben ser válidos y alineados correctamente. Tenga en cuenta que se trata de los datos binarios sin procesar que se almacenarán en el archivo indicado por hUpdate, no los datos proporcionados por LoadIcon, LoadString u otras funciones de carga específicas del recurso. Todos los datos que contienen cadenas o texto deben estar en formato Unicode. lpData no debe apuntar a datos ANSI.

Si lpData es NULL y cbData es 0, el recurso especificado se elimina del archivo indicado por hUpdate.

[in] cb

Tipo: DWORD

Tamaño, en bytes, de los datos del recurso en lpData.

Valor devuelto

Tipo: BOOL

Devuelve TRUE si es correcto o FALSE en caso contrario. Para obtener información de error extendida, llame a GetLastError.

Comentarios

Se recomienda que el archivo de recursos no se cargue antes de llamar a esta función. Sin embargo, si ese archivo ya está cargado, no provocará que se devuelva un error.

Una aplicación puede usar UpdateResource repetidamente para realizar cambios en los datos de recursos. Cada llamada a UpdateResource contribuye a una lista interna de adiciones, eliminaciones y reemplazos, pero no escribe realmente los datos en el archivo indicado por hUpdate. La aplicación debe usar la función EndUpdateResource para escribir los cambios acumulados en el archivo.

Esta función puede actualizar los recursos de los módulos que contienen código y recursos.

Antes de Windows 7: Si lpData es NULL y cbData es distinto de cero, el recurso especificado NO se elimina y se produce una excepción.

A partir de Windows Vista: Como se indicó anteriormente, hay restricciones en las actualizaciones de recursos en archivos que contienen datos de configuración rc: archivos LN y archivos .mui. Las restricciones son las siguientes:

Acción Archivo LN Archivo .mui
1. Agregue un nuevo tipo que no exista en los archivos LN o .mui. Agregue el tipo en el archivo LN y trate como independiente del idioma (no localizable) y agregue un nuevo tipo o elemento en los datos de configuración rc. Las únicas adiciones permitidas son los siguientes tipos: versión del archivo, datos de configuración rc, manifiesto XML de ensamblado en paralelo.
2. Agregue un nuevo elemento de recurso a un tipo existente. Usa los datos de configuración rc para comprobar si el tipo existe en los archivos .mui asociados a este archivo LN. Si el tipo no existe en los archivos .mui, agregue el elemento y trate el nuevo elemento como no localizable. Si el tipo existe en los archivos .mui, no se permite agregar. Solo se pueden agregar elementos de los siguientes tipos: Versión del archivo, Datos de configuración rc, Manifiesto XML de ensamblado en paralelo.
3. Actualizar un elemento de recurso. Usa los datos de configuración rc para comprobar si el tipo existe en los archivos .mui asociados al archivo LN. Si el tipo no existe en los archivos .mui, esta actualización del elemento de recurso se permite en el archivo LN. De lo contrario, si el tipo existe en los archivos .mui asociados a este archivo LN, no se permite esta actualización. Las únicas actualizaciones permitidas son elementos de los siguientes tipos: versión del archivo, datos de configuración rc, manifiesto XML de ensamblado en paralelo.
4. Agregar un tipo o elemento para un nuevo idioma. No permitido. No permitido.
5. Quite un tipo o elemento existente. Funciona de forma similar al caso 3. Usa los datos de configuración rc para comprobar si el tipo existe en los archivos .mui asociados al archivo LN. Si no es así, se permite la eliminación del tipo o elemento del archivo LN. De lo contrario, si el tipo o elemento existe en los archivos .mui asociados a este archivo LN, no se permite la eliminación. Los únicos tipos que se pueden quitar son: versión del archivo, datos de configuración rc, manifiesto XML de ensamblado en paralelo; además, solo se pueden quitar los elementos de estos tipos.
6. Agregue, elimine o actualice un tipo no incluido en los datos de configuración rc (como versión, manifiesto XML de ensamblado en paralelo o datos de configuración rc). Permitido. Permitido.
7. Otra actualización de datos no localizables, como TYPELIB, reginst, etc. Actualice el tipo o elemento del archivo LN, trate como no localizable y agregue un nuevo tipo o elemento en los datos de configuración rc. No aplicable.
8. Agregar datos de configuración rc. Se puede realizar, pero no se comprueba la integridad de los datos de configuración de RC. Se puede realizar, pero no se comprueba la integridad de los datos de configuración de RC.
 

Ejemplos

Para obtener un ejemplo, consulte Actualización de recursos.

Nota

El encabezado winbase.h define UpdateResource 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 neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o 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 winbase.h (incluye Windows.h)
Library Kernel32.lib
Archivo DLL Kernel32.dll

Vea también

BeginUpdateResource

Conceptual

EndUpdateResource

LoadIcon

LoadString

LockResource

MAKEINTRESOURCE

MAKELANGID

Otros recursos

Referencia

Recursos

SizeofResource