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