Función CreateGenericComposite (objbase.h)
Realiza una composición genérica de dos monikers y proporciona un puntero al moniker compuesto resultante.
Sintaxis
HRESULT CreateGenericComposite(
[in, optional] LPMONIKER pmkFirst,
[in, optional] LPMONIKER pmkRest,
[out] LPMONIKER *ppmkComposite
);
Parámetros
[in, optional] pmkFirst
Puntero al moniker que se va a componer a la izquierda del moniker al que apunta pmkRest. Puede apuntar a cualquier tipo de moniker, incluido un compuesto genérico.
[in, optional] pmkRest
Puntero al moniker que se va a componer a la derecha del moniker al que apunta pmkFirst . Puede apuntar a cualquier tipo de moniker compatible con el tipo del moniker pmkRest , incluido un compuesto genérico.
[out] ppmkComposite
Dirección de una variable de puntero IMoniker* que recibe el puntero de interfaz al objeto de moniker compuesto que es el resultado de la composición de pmkFirst y pmkRest. Este objeto admite la implementación del moniker compuesto OLE de IMoniker. Cuando se ejecuta correctamente, la función ha llamado a AddRef en el moniker y el autor de la llamada es responsable de llamar a Release. Si pmkFirst o pmkRest son NULL, el puntero proporcionado es el que no es NULL. Si pmkFirst y pmkRest son NULL, o si se produce un error, el puntero devuelto es NULL.
Valor devuelto
Esta función puede devolver el valor devuelto estándar E_OUTOFMEMORY, así como los siguientes valores.
Código devuelto | Descripción |
---|---|
|
Los monikers de entrada se redactaron correctamente. |
|
Los dos monikers no se pudieron componer debido a un error en la sintaxis de una ruta de acceso (por ejemplo, si pmkFirst y pmkRest son monikers de archivo basados en rutas de acceso absolutas). |
Comentarios
CreateGenericComposite combina dos monikers en uno. Las clases de moniker que se unen pueden ser diferentes, sujeto solo a las reglas de composición. Llame a esta función solo si está escribiendo una nueva clase de moniker mediante la implementación de la interfaz IMoniker , dentro de una implementación de IMoniker::ComposeWith que incluye la funcionalidad de composición genérica.
Los proveedores de moniker deben llamar a ComposeWith para componer dos monikers juntos. Las implementaciones de ComposeWith deben (al igual que las implementaciones OLE) intentar, cuando sea razonable para la clase, realizar primero composiciones no genéricas, en las que se combinan dos monikers de la misma clase. Si esto no es posible, la implementación puede llamar a CreateGenericComposite para realizar una composición genérica, que combina dos monikers de clases diferentes, dentro de las reglas de composición. Puede definir nuevos tipos de composiciones no genéricas si escribe una nueva clase de moniker.
Durante el proceso de composición de los dos monikers, CreateGenericComposite hace todas las simplificaciones posibles. Considere el ejemplo donde pmkFirst es el moniker compuesto genérico, A + B + C y pmkRest es el moniker compuesto genérico, C -1 + B -1 + Z (donde C -1 es el inverso de C). La función compone primero C a C -1, que no se compone de nada. A continuación, compone B y B -1 en nada. Por último, compone A a Z y proporciona un puntero al moniker compuesto genérico, A + Z.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows 2000 Professional [aplicaciones de escritorio | Aplicaciones para UWP] |
Servidor mínimo compatible | Windows 2000 Server [aplicaciones de escritorio | Aplicaciones para UWP] |
Plataforma de destino | Windows |
Encabezado | objbase.h |
Library | Ole32.lib |
Archivo DLL | Ole32.dll |
Conjunto de API | ext-ms-win-com-ole32-l1-1-5 (introducido en Windows 10, versión 10.0.15063) |