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 .

См. также

ЗАРЕГИСТРИРОВАТЬ

ОТМЕНИТЬ РЕГИСТРАЦИЮ