imagemso bert xml image ms-word ribbon

xml - bert imagemso



Word Ribbon XML: Grupo colapsado solo muestra la imagen predeterminada (1)

Reparado: cuando devuelvo un ícono que contiene imágenes de 16 y 32 (y 48 píxeles), funciona como se esperaba.

Por alguna razón, usamos diferentes recursos de iconos (archivos individuales que contienen 16 o 32 iconos de píxeles) para los botones de cinta pequeños y grandes. En su lugar, uno debe usar íconos que contengan todos los tamaños en un solo archivo de íconos. Bonificación: cuando el icono también contiene una imagen de 48 píxeles, los botones de la cinta están pintados correctamente para las fuentes del sistema escalado.

Tenemos un complemento de Word implementado en C ++ como complemento COM. Nuestro grupo de cinta se carga utilizando la devolución de llamada GetCustomUI. Cuando Word 2010 muestra nuestro grupo de cinta en un diseño colapsado, solo se muestra un icono predeterminado.

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui" onLoad="OnLoad"> <ribbon> <tabs> <tab idMso="TabReviewWord"> <group id="MyGroup" label="My AddIn" getImage="GetGroupImage" insertAfterMso="GroupProofing" > ....... STDMETHODIMP CWordPlugIn::GetGroupImage(IDispatch* pRibbon, IPictureDisp** ppdispImage) { return GetImage(GetGroupIcon(16), ppdispImage); }; HRESULT CWordPlugIn::GetImage(HICON hIcon, IPictureDisp** ppdispImage) { PICTDESC pd; memset(&pd, 0, sizeof(pd)); pd.cbSizeofstruct = sizeof(pd); pd.picType = PICTYPE_ICON; pd.icon.hicon = hIcon; if ( pd.icon.hicon == NULL ) { return E_INVALIDARG; }; HRESULT hRes = OleCreatePictureIndirect(&pd, IID_IPictureDisp, FALSE, (LPVOID *) ppdispImage); if ( hRes != S_OK ) { //write log }; return hRes; };

Cuando no defino la devolución de llamada "getImage" para el grupo, el grupo colapsado muestra un icono predeterminado de Microsoft. Cuando defino la devolución de llamada "getImage", mi icono no se muestra, solo una imagen vacía. La misma devolución de llamada funciona perfectamente para los iconos de los botones. ¿Cómo puedo definir un ícono de grupo programáticamente que se muestra para grupos colapsados? Intenté ambos, 16 y 32 íconos de píxeles.