Compartir a través de


xlGetInstPtr

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

Devuelve el identificador de instancia de la instancia de Microsoft Excel que actualmente llama a un archivo DLL.

Excel4(xlGetInstPtr, LPXLOPER pxRes, 0);Excel12(xlGetInstPtr, LPXLOPER12 pxRes, 0);

Parameters

Esta función no tiene argumentos.

Valor de la propiedad/valor devuelto

El identificador de instancia (xltypeBigData) estará en el campo val.bigdata.h.hdata .

Comentarios

Esta función se puede usar para distinguir entre varias instancias en ejecución de Excel que llaman al archivo DLL.

Esta función devuelve un valor correcto con versiones de Excel de 32 y 64 bits. Se introdujo en Excel 2010 como una extensión de la función xlGetInst , que solo funciona correctamente con versiones de 32 bits de Excel.

Esta función funciona correctamente cuando se llama a ella mediante las variedades Excel4 y Excel12 de las funciones de devolución de llamada api, ya que tanto XLOPER como XLOPER12 tienen la misma estructura que admite el tipo de valor xltypeBigData .

Ejemplo

En el ejemplo siguiente se compara la instancia de la última copia de Excel que la llamó a la copia actual de Excel que la llamó. Si son iguales, devuelve 1; Si no es así, devuelve 0; Si se produce un error en la función, devuelve -1. Este ejemplo funciona con versiones de 32 y 64 bits de 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;
}

Vea también