xlGetInstPtr
Aplica-se a: Excel 2013 | Office 2013 | Visual Studio
Retorna o identificador de instância da instância do Microsoft Excel que atualmente está chamando uma DLL.
Excel4(xlGetInstPtr, LPXLOPER pxRes, 0);Excel12(xlGetInstPtr, LPXLOPER12 pxRes, 0);
Parâmetros
Essa função não tem argumentos.
Valor de propriedade/Valor de retorno
O identificador de instância (xltypeBigData) estará no campo val.bigdata.h.hdata .
Comentários
Essa função pode ser usada para distinguir entre várias instâncias em execução do Excel que estão chamando a DLL.
Essa função retorna um valor correto com versões de 32 bits e 64 bits do Excel. Ele foi introduzido no Excel 2010 como uma extensão para a função xlGetInst , que funciona corretamente apenas com versões de 32 bits do Excel.
Essa função funciona corretamente quando é chamada usando as variedades Excel4 e Excel12 das funções de retorno de chamada da API, pois tanto XLOPER quanto XLOPER12 têm a mesma estrutura que dá suporte ao tipo de valor xltypeBigData .
Exemplo
O exemplo a seguir compara a instância da última cópia do Excel que a chamou à cópia atual do Excel que a chamou. Se forem iguais, ele retornará 1; se não, ele retorna 0; se a função falhar, ela retornará -1. Este exemplo funciona com versões de 32 bits e 64 bits do Excel.
\SAMPLES\EXAMPLE\EXAMPLE.C
short WINAPI xlGetInstPtrExample(void)
{
XLOPER12 xRes;
static HANDLE hOld = 0;
short iRet;
if (Excel12(xlGetInstPtr, &xRes, 0) != xlretSuccess)
iRet = -1;
else
{
HANDLE hNew;
hNew = xRes.val.bigdata.h.hdata;
if (hNew != hOld)
iRet = 0;
else
iRet = 1;
hOld = hNew;
}
return iRet;
}