Función mmioOpenA (mmiscapi.h)
La función mmioOpen abre un archivo para E/S sin búfer o almacenado en búfer; crea un archivo; elimina un archivo; o comprueba si existe un archivo. El archivo puede ser un archivo estándar, un archivo de memoria o un elemento de un sistema de almacenamiento personalizado. El identificador devuelto por mmioOpen no es un identificador de archivo estándar; no lo use con ninguna función de E/S de archivos que no sea funciones de E/S de archivos multimedia.
Sintaxis
HMMIO mmioOpenA(
LPSTR pszFileName,
LPMMIOINFO pmmioinfo,
DWORD fdwOpen
);
Parámetros
pszFileName
Puntero a un búfer que contiene el nombre del archivo. Si no se especifica ningún procedimiento de E/S para abrir el archivo, el nombre de archivo determina cómo se abre el archivo, como se indica a continuación:
- Si el nombre de archivo no contiene un signo más (+), se supone que es el nombre de un archivo estándar (es decir, un archivo cuyo tipo no es HMMIO).
- Si el nombre de archivo es del formulario EXAMPLE. EXT+ABC, se supone que la extensión EXT identifica un procedimiento de E/S instalado al que se llama para realizar E/S en el archivo. Para obtener más información, vea mmioInstallIOProc.
- Si el nombre de archivo es
NULL y no se da ningún procedimiento de E/S, se supone que el miembro adwInfo del MMIOINFOes el identificador de archivo estándar (no HMMIO ) de un archivo abierto actualmente.
Al abrir un archivo de memoria, establezca szFilename en NULL.
pmmioinfo
Puntero a una estructura de MMIOINFO de
fdwOpen
Marcas para la operación de apertura. Las marcas MMIO_READ, MMIO_WRITE y MMIO_READWRITE son mutuamente excluyentes; solo se debe especificar una. Las marcas MMIO_COMPAT, MMIO_EXCLUSIVE, MMIO_DENYWRITE, MMIO_DENYREAD y MMIO_DENYNONE son marcas de uso compartido de archivos. Se definen los siguientes valores.
Valor | Significado |
---|---|
MMIO_ALLOCBUF | Abre un archivo para E/S almacenada en búfer. Para asignar un búfer mayor o menor que el tamaño de búfer predeterminado (8K, definido como MMIO_DEFAULTBUFFER), establezca el cchBuffer miembro de la estructura de MMIOINFO en el tamaño de búfer deseado. Si cchBuffer es cero, se usa el tamaño de búfer predeterminado. Si proporciona su propio búfer de E/S, esta marca no debe usarse. |
MMIO_COMPAT | Abre el archivo con modo de compatibilidad, lo que permite que cualquier proceso de una máquina determinada abra el archivo en cualquier número de veces. Si el archivo se ha abierto con cualquiera de los otros modos de uso compartido, mmioOpen produce un error. |
MMIO_CREATE | Crea un nuevo archivo. Si el archivo ya existe, se trunca a una longitud cero. En el caso de los archivos de memoria, esta marca indica que el final del archivo se encuentra inicialmente al principio del búfer. |
MMIO_DELETE | Elimina un archivo. Si se especifica esta marca, szFilename no debe ser NULL. El valor devuelto es TRUE (conversión a HMMIO) si el archivo se eliminó correctamente o FALSE de lo contrario. No llame a la función mmioClose para un archivo que se ha eliminado. Si se especifica esta marca, se omiten todas las demás marcas que abren archivos. |
MMIO_DENYNONE | Abre el archivo sin denegar a otros procesos acceso de lectura o escritura al archivo. Si cualquier otro proceso ha abierto el archivo en modo de compatibilidad, mmioOpen produce un error. |
MMIO_DENYREAD | Abre el archivo y deniega a otros procesos acceso de lectura al archivo. Si el archivo se ha abierto en modo de compatibilidad o para el acceso de lectura por cualquier otro proceso, mmioOpen produce un error. |
MMIO_DENYWRITE | Abre el archivo y deniega a otros procesos el acceso de escritura al archivo. Si el archivo se ha abierto en modo de compatibilidad o para el acceso de escritura por cualquier otro proceso, mmioOpen produce un error. |
MMIO_EXCLUSIVE | Abre el archivo y deniega a otros procesos acceso de lectura y escritura al archivo. Si el archivo se ha abierto en cualquier otro modo para el acceso de lectura o escritura, incluso mediante el proceso actual, mmioOpen produce un error. |
MMIO_EXIST | Determina si el archivo especificado existe y crea un nombre de archivo completo a partir de la ruta de acceso especificada en szFilename. El valor devuelto es TRUE (convertido a HMMIO) si la calificación se realizó correctamente y el archivo existe o FALSE de lo contrario. El archivo no se abre y la función no devuelve un identificador de archivo multimedia de E/S válido, por lo que no intenta cerrar el archivo.
Note Applications debe llamar a GetFileAttributes o GetFileAttributesEx en su lugar.
|
MMIO_GETTEMP |
Crea un nombre de archivo temporal, opcionalmente mediante los parámetros pasados en szFilename. Por ejemplo, puede especificar "C:F" para crear un archivo temporal que resida en la unidad C, empezando por la letra "F". El nombre de archivo resultante se copia en el búfer al que apunta szFilename. El búfer debe ser lo suficientemente grande como para contener al menos 128 caracteres.
Si el nombre de archivo temporal se creó correctamente, el valor devuelto se MMSYSERR_NOERROR (se convierte en HMMIO). De lo contrario, el valor devuelto se MMIOERR_FILENOTFOUND de lo contrario. El archivo no se abre y la función no devuelve un identificador de archivo multimedia de E/S válido, por lo que no intenta cerrar el archivo. Esta marca invalida todas las demás marcas.
Note Applications debe llamar a GetTempFileName en su lugar.
|
MMIO_PARSE |
Crea un nombre de archivo completo a partir de la ruta de acceso especificada en szFilename. El nombre completo se copia en el búfer al que apunta szFilename. El búfer debe ser lo suficientemente grande como para contener al menos 128 caracteres.
Si la función se ejecuta correctamente, el valor devuelto es TRUE (se convierte en HMMIO). De lo contrario, el valor devuelto es FALSE. El archivo no se abre y la función no devuelve un identificador de archivo multimedia de E/S válido, por lo que no intenta cerrar el archivo. Si se especifica esta marca, se omiten todas las marcas que abren archivos.
Note Applications debe llamar a GetFullPathName en su lugar.
|
MMIO_READ | Abre el archivo para leer solo. Este es el valor predeterminado si no se especifican MMIO_WRITE y MMIO_READWRITE. |
MMIO_READWRITE | Abre el archivo para leer y escribir. |
MMIO_WRITE | Abre el archivo solo para escribir. |
Valor devuelto
Ninguno
Observaciones
Si lpmmioinfo apunta a una estructura de MMIOINFO, inicialice los miembros de la estructura de la siguiente manera. Todos los miembros sin usar deben establecerse en cero, incluidos los miembros reservados.
- Para solicitar que un archivo se abra con un procedimiento de E/S instalado, establezca fccIOProc en el código de cuatro caracteres del procedimiento de E/S y establezca pIOProc en NULL.
- Para solicitar que un archivo se abra con un procedimiento de E/S desinstalado, establezca ioProc para que apunte al procedimiento de E/S y establezca fccIOProc en NULL.
- Para solicitar que mmioOpen determinar qué procedimiento de E/S se va a usar para abrir el archivo en función del nombre de archivo contenido en szFilename, establezca fccIOProc y pIOProc en NULL. Este es el comportamiento predeterminado si no se especifica ninguna estructura mmIOINFO
. - Para abrir un archivo de memoria mediante un búfer administrado y asignado internamente, establezca pchBuffer en NULL, fccIOProc en FOURCC_MEM, cchBuffer al tamaño inicial del búfer y adwInfo al tamaño de expansión incremental del búfer. Este archivo de memoria se expandirá automáticamente en incrementos del número de bytes especificados en adwInfo cuando sea necesario. Especifique la marca MMIO_CREATE para el parámetro dwOpenFlags para establecer inicialmente el final del archivo para que sea el principio del búfer.
- Para abrir un archivo de memoria mediante un búfer proporcionado por la aplicación, establezca pchBuffer para que apunte al búfer de memoria, fccIOProc a FOURCC_MEM, cchBuffer al tamaño del búfer y adwInfo al tamaño de expansión incremental del búfer. El tamaño de expansión en
adwInfo debe ser distinto de cero solo sipchBuffer es un puntero obtenido llamando al globalAlloc y a las funciones GlobalLock ; en este caso, se llamará a la funciónGlobalReAlloc para expandir el búfer. Es decir, si pchBuffer apunta a una matriz local o global o a un bloque de memoria en el montón local, adwInfo debe ser cero. Especifique la marca MMIO_CREATE para el parámetro dwOpenFlags para establecer inicialmente el final del archivo para que sea el principio del búfer. De lo contrario, se considera legible todo el bloque de memoria. - Para usar un identificador de archivo estándar abierto actualmente (es decir, un identificador de archivo que no tiene el tipo de HMMIO) con servicios de E/S de archivos multimedia, establezca fccIOProc en FOURCC_DOS, pchBuffer para NULLy adwInfo al identificador de archivo estándar. Los desplazamientos dentro del archivo serán relativos al principio del archivo y no están relacionados con la posición del archivo estándar en el momento en que se llama a mmioOpen; el desplazamiento inicial de E/S del archivo multimedia será el mismo que el desplazamiento en el archivo estándar cuando se llama a mmioOpen. Para cerrar el identificador de archivo de E/S multimedia sin cerrar el identificador de archivo estándar, pase la marca de MMIO_FHOPEN a mmioClose.
Nota
El encabezado mmiscapi.h define mmioOpen 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 |
mmiscapi.h (incluya Mmiscapi.h, Windows.h) |
biblioteca de |
Winmm.lib |
DLL de |
Winmm.dll |