Compartilhar via


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

Confira também