xlAutoRegister/xlAutoRegister12
Область применения: Excel 2013 | Office 2013 | Visual Studio
Excel вызывает функцию xlAutoRegister всякий раз, когда был выполнен вызов функции XLM REGISTER или функции xlfRegister, эквивалентной C API, с отсутствующими типами возвращаемых и аргументов функции. Он позволяет XLL выполнять поиск по внутренним спискам экспортированных функций и команд для регистрации функции с указанными аргументами и возвращаемыми типами.
Начиная с Excel 2007, Excel вызывает функцию xlAutoRegister12 в качестве предпочтительной функции xlAutoRegister , если она экспортируется XLL.
Excel не требует XLL для реализации и экспорта любой из этих функций.
Примечание.
Если xlAutoRegisterxlAutoRegister12/ пытается зарегистрировать функцию без указания типов аргумента и возвращаемого значения, возникает рекурсивный цикл вызова, который в конечном итоге переполняет стек вызовов и приводит к сбою Excel.
LPXLOPER12 WINAPI xlAutoRegister12(LPXLOPER12 pxName);
LPXLOPER WINAPI xlAutoRegister(LPXLOPER pxName);
Параметры
pxName (xltypeStr)
Имя регистрируемого функции XLL.
Значение свойства и возвращаемое значение
Функция должна возвращать результат попытки зарегистрировать функцию XLL pxName с помощью функции xlfRegister . Если указанная функция не является одним из экспортов XLL, она должна вернуть ошибку #VALUE! или NULL , которую Excel будет интерпретировать при #VALUE!.
Замечания
Реализация xlAutoRegister должна выполнять поиск без учета регистра во внутренних списках функций И команд XLL, экспортируемых в поисках совпадения с переданным именем. Если функция или команда найдена, xlAutoRegister следует попытаться зарегистрировать ее с помощью функции xlfRegister , указав строку, которая сообщает Excel о типах возвращаемых и аргументов функции, а также любые другие необходимые сведения о функции. Затем он должен вернуться в Excel независимо от возвращенного вызова xlfRegister . Если функция успешно зарегистрирована, xlfRegister возвращает значение xltypeNum , содержащее идентификатор регистра функции.
Пример
Пример реализации этой функции см. в файле SAMPLES\EXAMPLE\EXAMPLE.C
.