xlGetInstPtr
S’applique à: Excel 2013 | Office 2013 | Visual Studio
Retourne le handle instance du instance de Microsoft Excel qui appelle actuellement une DLL.
Excel4(xlGetInstPtr, LPXLOPER pxRes, 0);Excel12(xlGetInstPtr, LPXLOPER12 pxRes, 0);
Paramètres
Cette fonction n’a pas d’arguments.
Valeur de propriété/valeur de renvoi
Le handle instance (xltypeBigData) se trouve dans le champ val.bigdata.h.hdata.
Remarques
Cette fonction peut être utilisée pour faire la distinction entre plusieurs instances en cours d’exécution d’Excel qui appellent la DLL.
Cette fonction retourne une valeur correcte avec les versions 32 bits et 64 bits d’Excel. Il a été introduit dans Excel 2010 en tant qu’extension de la fonction xlGetInst , qui fonctionne correctement uniquement avec les versions 32 bits d’Excel.
Cette fonction fonctionne correctement lorsqu’elle est appelée à l’aide des variétés Excel4 et Excel12 des fonctions de rappel d’API, car XLOPER et XLOPER12 ont la même structure que celle qui prend en charge le type de valeur xltypeBigData .
Exemple
L’exemple suivant compare la instance de la dernière copie d’Excel qui l’a appelée à la copie actuelle d’Excel qui l’a appelée. S’ils sont identiques, il retourne 1 ; si ce n’est pas le cas, elle retourne 0 ; si la fonction échoue, elle retourne -1. Cet exemple fonctionne avec les versions 32 bits et 64 bits d’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;
}