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