Compartilhar via


xlAddInManagerInfo/xlAddInManagerInfo12

Aplica-se a: Excel 2013 | Office 2013 | Visual Studio

Chamado pelo Microsoft Excel quando o Gerenciador de Suplementos é invocado pela primeira vez em uma sessão do Excel. Essa função é usada para fornecer ao Gerenciador de Add-In informações sobre seu suplemento.

As versões do Excel 2007 e posteriores chamam xlAddInManagerInfo12 em preferência para xlAddInManagerInfo se exportada pela XLL. A função xlAddInManagerInfo12 deve funcionar da mesma forma que xlAddInManagerInfo para evitar diferenças específicas de versão no comportamento da XLL. O Excel espera que xlAddInManagerInfo12 retorne um tipo de dados XLOPER12 , enquanto xlAddInManagerInfo deve retornar um XLOPER.

A função xlAddInManagerInfo12 não é chamada por versões do Excel anteriores ao Excel 2007, pois elas não dão suporte ao XLOPER12.

O Excel não requer uma XLL para implementar e exportar nenhuma dessas funções.

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

Parâmetros

pxAction: Um ponteiro para um XLOPER/XLOPER12 numérico (xltypeInt ou xltypeNum).

As informações que o Excel está solicitando.

Valor de propriedade/Valor de retorno

Se pxAction é ou pode ser coagido a, o número 1, então sua implementação dessa função deve retornar uma cadeia de caracteres contendo algumas informações sobre o suplemento, normalmente seu nome e talvez um número de versão. Caso contrário, ele deve retornar #VALUE!.

Se você não retornar uma cadeia de caracteres, o Excel tentará converter o valor retornado em uma cadeia de caracteres.

Comentários

Se a cadeia de caracteres retornada apontar para o buffer alocado dinamicamente, você deverá garantir que esse buffer seja finalmente liberado. Se a cadeia de caracteres foi alocada pelo Excel, você fará isso definindo xlbitXLFree. Se a cadeia de caracteres foi alocada pela DLL, você fará isso definindo xlbitDLLFree e também deverá implementar no xlAutoFree (se você estiver retornando um XLOPER) ou xlAutoFree12 (se você estiver retornando um XLOPER12).

Exemplo

\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;
} 

Confira também

Gerenciador de Suplemento e Funções da Interface XLL