Partager via


xlGetInst

S’applique à: Excel 2013 | Office 2013 | Visual Studio

Retourne le handle instance du instance de Microsoft Excel qui appelle actuellement une DLL.

Excel4(xlGetInst, LPXLOPER pxRes, 0); /* returns low part only */
Excel12(xlGetInst, LPXLOPER12 pxRes, 0); /* returns full handle */

Paramètres

Cette fonction n’a pas d’arguments.

Valeur de propriété/valeur de renvoi

Le handle instance (xltypeInt) se trouve dans le champ val.w.

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.

Lorsque vous appelez cette fonction à l’aide d’Excel4 ou Excel4v, la variable entière XLOPER retournée est un int court 16 bits signé. Ceci est uniquement capable de contenir les 16 bits faibles du handle Windows 32 bits. À compter d’Excel 2007, la variable integer du XLOPER12 est un int 32 bits signé et contient donc le handle entier, ce qui élimine la nécessité d’itérer toutes les fenêtres ouvertes.

Importante

Si la fonction xlGetInst est utilisée avec la version 64 bits de Microsoft Excel, la fonction échoue. En effet, le type de valeur xltypeInt n’est pas assez large pour contenir le handle long 64 bits retourné par Excel dans ce cas. À cet effet, Excel 2010 a introduit une nouvelle fonction nommée xlGetInstPtr, qui s’exécute correctement avec les versions 32 bits et 64 bits d’Excel.

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.

\SAMPLES\EXAMPLE\EXAMPLE.C

short WINAPI xlGetInstExample(void)
{
    XLOPER12 xRes;
    static HANDLE hOld = 0;
    short iRet;
    if (Excel12(xlGetInst, &xRes, 0) != xlretSuccess)
        iRet = -1;
    else
    {
    HANDLE hNew;
    hNew = (HANDLE)xRes.val.w;
    if (hNew != hOld)
            iRet = 0;
    else
            iRet = 1;
    hOld = hNew;
    }
    return iRet;
}

Voir aussi

xlGetHwnd

xlGetInstPtr

Fonctions de l’API C à appeler à partir d’un fichier DLL ou XLL