Compartir a través de


xlAddInManagerInfo/xlAddInManagerInfo12

Hace referencia a: Excel 2013 | Office 2013 | Visual Studio

Lo llama Microsoft Excel cuando se invoca el Administrador de complementos por primera vez en una sesión de Excel. Esta función se usa para proporcionar al Administrador de Add-In información sobre el complemento.

Excel 2007 y versiones posteriores llaman a xlAddInManagerInfo12 en preferencia a xlAddInManagerInfo si lo exporta XLL. La función xlAddInManagerInfo12 debe funcionar de la misma manera que xlAddInManagerInfo para evitar diferencias específicas de la versión en el comportamiento del XLL. Excel espera que xlAddInManagerInfo12 devuelva un tipo de datos XLOPER12 , mientras que xlAddInManagerInfo debe devolver un XLOPER.

Las versiones de Excel anteriores a Excel 2007 no llaman a la función xlAddInManagerInfo12 , ya que no admiten el XLOPER12.

Excel no requiere un XLL para implementar y exportar ninguna de estas funciones.

LPXLOPER WINAPI xlAddInManagerInfo(LPXLOPER pxAction);
LPXLOPER12 WINAPI xlAddInManagerInfo12(LPXLOPER12 pxAction);

Parameters

pxAction: Puntero a un XLOPER/XLOPER12 numérico (xltypeInt o xltypeNum).

La información que Excel está solicitando.

Valor de la propiedad/valor devuelto

Si pxAction es o se puede convertir en el número 1, la implementación de esta función debe devolver una cadena que contenga información sobre el complemento, normalmente su nombre y quizás un número de versión. De lo contrario, debería devolver #VALUE!.

Si no devuelve una cadena, Excel intenta convertir el valor devuelto en una cadena.

Comentarios

Si la cadena devuelta apunta al búfer asignado dinámicamente, debe asegurarse de que este búfer se libere finalmente. Si Excel asignó la cadena, para ello, establezca xlbitXLFree. Si la cadena fue asignada por el archivo DLL, para ello, establezca xlbitDLLFree y también debe implementar en xlAutoFree (si va a devolver un XLOPER) o xlAutoFree12 (si va a devolver un XLOPER12).

Ejemplo

\SAMPLES\GENERIC\GENERIC.C

LPXLOPER12 WINAPI xlAddInManagerInfo12(LPXLOPER12 xAction)
{
    static XLOPER12 xInfo, xIntAction;
/*
** This code coerces the passed-in value to an integer. This is how the
** code determines what is being requested. If it receives a 1, it returns a
** string representing the long name. If it receives anything else, it
** returns a #VALUE! error.
*/
    Excel12f(xlCoerce, &xIntAction, 2, xAction, TempInt12(xltypeInt));
    if(xIntAction.val.w == 1) 
    {
        xInfo.xltype = xltypeStr;
        xInfo.val.str = L"\026Example Standalone DLL";
    }
    else 
    {
        xInfo.xltype = xltypeErr;
        xInfo.val.err = xlerrValue;
    }
// Word of caution - returning static XLOPERs/XLOPER12s is not thread safe
// for UDFs declared as thread safe. Use alternate memory allocation mechanisms.
    return (LPXLOPER12)&xInfo;
} 

Vea también

Administrador de complementos y funciones de la interfaz de XLL