Función AssocQueryStringA (shlwapi.h)

Busca y recupera una cadena relacionada con la asociación de archivos o protocolos del registro.

Sintaxis

LWSTDAPI AssocQueryStringA(
  [in]            ASSOCF   flags,
  [in]            ASSOCSTR str,
  [in]            LPCSTR   pszAssoc,
  [in, optional]  LPCSTR   pszExtra,
  [out, optional] LPSTR    pszOut,
  [in, out]       DWORD    *pcchOut
);

Parámetros

[in] flags

Tipo: ASSOCF

Marcas que se pueden usar para controlar la búsqueda. Puede ser cualquier combinación de valores ASSOCF , excepto que solo se puede incluir un valor de ASSOCF_INIT.

[in] str

Tipo: ASSOCSTR

Valor ASSOCSTR que especifica el tipo de cadena que se va a devolver.

[in] pszAssoc

Tipo: LPCTSTR

Puntero a una cadena terminada en null que se usa para determinar la clave raíz. Se pueden usar los cuatro tipos siguientes de cadenas.

  1. Extensión de nombre de archivo: una extensión de nombre de archivo, como .txt.
  2. CLSID: UN GUID CLSID en el formato estándar "{GUID}".
  3. ProgID: ProgID de una aplicación, como Word. Document.8.
  4. Nombre ejecutable: nombre del archivo .exe de una aplicación. La marca ASSOCF_OPEN_BYEXENAME debe establecerse en marcas.

[in, optional] pszExtra

Tipo: LPCTSTR

Cadena opcional terminada en null con información adicional sobre la ubicación de la cadena. Normalmente se establece en un verbo shell como abierto. Establezca este parámetro en NULL si no se usa.

[out, optional] pszOut

Tipo: LPTSTR

Puntero a una cadena terminada en null que, cuando esta función devuelve correctamente, recibe la cadena solicitada. Establezca este parámetro en NULL para recuperar el tamaño de búfer necesario.

[in, out] pcchOut

Tipo: DWORD*

Puntero a un valor que, al llamar a la función, se establece en el número de caracteres del búfer pszOut . Cuando la función devuelve correctamente, el valor se establece en el número de caracteres colocados realmente en el búfer.

Si la marca ASSOCF_NOTRUNCATE se establece en marcas y el búfer especificado en pszOut es demasiado pequeño, la función devuelve E_POINTER y el valor se establece en el tamaño necesario del búfer.

Si pszOut es NULL, la función devuelve S_FALSE y pcchOut apunta al tamaño necesario, en caracteres, del búfer.

Valor devuelto

Tipo: HRESULT

Devuelve un valor de error COM estándar, incluido lo siguiente:

Error Significado
S_OK Correcto.
E_POINTER El búfer pszOut es demasiado pequeño para contener toda la cadena.
S_FALSE pszOut es NULL. pcchOut contiene el tamaño de búfer necesario.

Comentarios

Esta función es un contenedor para la interfaz IQueryAssociations . La función AssocQueryString está pensada para simplificar el proceso de uso de la interfaz IQueryAssociations .

Una vez seleccionado un elemento, el host debe decidir qué controlador de vista previa (si existe) está disponible para ese elemento. Normalmente, los controladores de vista previa se registran en extensiones de nombre de archivo o ProgID, pero algunos controladores de vista previa solo se crean instancias de los elementos dentro de carpetas de shell concretas (el controlador de vista previa MAPI está asociado a cualquier elemento que provenga de la carpeta shell mapi, por ejemplo). Por lo tanto, el host debe usar IQueryAssociations para determinar qué controlador de vista previa se va a usar. Para obtener más información sobre cómo funcionan las funciones de asociación de archivos y protocolos, consulte IQueryAssociations.

Nota

El encabezado shlwapi.h define AssocQueryString 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

Requisito Value
Cliente mínimo compatible Windows 2000 Professional, Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado shlwapi.h
Library Shlwapi.lib
Archivo DLL Shlwapi.dll (versión 5.0 o posterior)