Compartir a través de


Función UpdateResourceA (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 (LN) neutros del idioma y archivos de recursos específicos del idioma (.mui).

Sintaxis

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

Parámetros

[in] hUpdate

Tipo: HANDLE de

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

[in] lpType

Tipo: LPCTSTR de

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 de

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 use una cadena que comience con un carácter "#" para este parámetro.

[in] wLanguage

Tipo: word

El 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 de

Los datos de recursos que se van a insertar en el archivo indicados 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 van a almacenar en el archivo indicado por hUpdate, no los datos proporcionados por LoadIcon, LoadStringu 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 de

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

Valor devuelto

Tipo: BOOL de

Devuelve TRUE si se realiza correctamente o FALSE de lo contrario. Para obtener información de error extendida, llame a GetLastError.

Observaciones

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 del recurso. 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 dentro de los módulos que contienen código y recursos.

anterior a 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 de 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 rc Config 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 rc Config para comprobar si el tipo existe en los archivos .mui asociados con el 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 rc Config para comprobar si el tipo existe en los archivos .mui asociados con el 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 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 hacer, pero no se comprueba la integridad de los datos de la configuración de RC. Se puede hacer, pero no se comprueba la integridad de los datos de la configuración de RC.
 

Ejemplos

Para obtener un ejemplo, vea 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 Conventions for Function Prototypes.

Requisitos

Requisito Valor
cliente mínimo admitido Windows 2000 Professional [solo aplicaciones de escritorio]
servidor mínimo admitido Windows 2000 Server [solo aplicaciones de escritorio]
de la plataforma de destino de Windows
encabezado de winbase.h (incluya Windows.h)
biblioteca de Kernel32.lib
DLL de Kernel32.dll

Consulte también

BeginUpdateResource

conceptual de

EndUpdateResource

LoadIcon

LoadString

lockResource

MAKEINTRESOURCE

MAKELANGID

otros recursos

de referencia de

recursos de

SizeofResource