xlGetInstPtr
适用于:Excel 2013 | Office 2013 | Visual Studio
返回当前正在调用 DLL 的 Microsoft Excel 实例的实例句柄。
Excel4(xlGetInstPtr, LPXLOPER pxRes, 0);Excel12(xlGetInstPtr, LPXLOPER12 pxRes, 0);
参数
此函数没有参数。
属性值/返回值
(xltypeBigData) 的实例句柄将位于 val.bigdata.h.hdata 字段中。
备注
此函数可用于区分调用 DLL 的多个正在运行的 Excel 实例。
此函数返回一个包含 32 位和 64 位版本的 Excel 的正确值。 它在 Excel 2010 中作为 xlGetInst 函数的扩展引入,该函数仅适用于 32 位版本的 Excel。
使用 API 回调函数的 Excel4 和 Excel12 品种调用此函数时,此函数可正常工作,因为 XLOPER 和 XLOPER12 具有相同的结构,支持 xltypeBigData 值类型。
示例
以下示例将调用它的 Excel 最后一个副本的实例与调用它的 Excel 的当前副本进行比较。 如果它们相同,则返回 1;如果不是,则返回 0;如果函数失败,则返回 -1。 此示例适用于 32 位和 64 位版本的 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;
}