Отсутствует документация MSDN для разработки надстроек xll?

Я потратил довольно много времени на поиски полной документации по всем функциям C API XLM, но безуспешно.

Я нашел эту страницу, которая иллюстрирует некоторые из них: http://msdn.microsoft.com/en-us/library/office/bb687910%28v=office.12%29.aspx

Но, например, я хотел понять и использовать xlfAddMenu, и я не могу найти страницу в MSDN, которая объясняет мне.

Знаете ли вы, есть ли доступная документация? Видимо, туда не так легко попасть.

2 ответа

По моему мнению, лучшая документация (но не обновленная..) - это следующая книга: Финансовые приложения с использованием разработки надстроек Excel на C / C++, 2-е издание, Стив Далтон. Вы можете найти описание функции xlfAddMenu на стр. 332. Вы также можете найти некоторую полезную информацию в файле chm комплекта разработки программного обеспечения Microsoft Excel XLL, включая примеры кодов (обратите внимание, что я не нашел в нем xlfAddMenu, так что я думаю, что это обесценилась функция).

Нет исчерпывающей официальной документации для всех функций C API XLM. Однако, как сказано в документации, относительно функций C API XLM:

Excel предоставляет через API C множество других функций, которые полезны при разработке XLL. Они соответствуют функциям листа Excel, а также функциям и командам, доступным на листах макросов XLM ".

Так же EXAMPLE.[C,H] Файлы, которые связаны с установкой SDK, используют некоторые из этих функций, и вы можете использовать их, чтобы узнать, как их использовать. Например, xlfAddMenu используется в xlAutoOpen функция обратного вызова.

// In the following block of code, the Generic drop-down menu is created.
// Before creation, a check is made to determine if Generic already
// exists. If not, it is added. If the menu needs to be added, memory is
// allocated to hold the array of menu items. The g_rgMenu[] table is then
// transferred into the newly created array. The array is passed as an
// argument to xlfAddMenu to actually add the drop-down menu before the
// help menu. As a last step the memory allocated for the array is
// released.
//
// This block uses TempStr12() and TempNum12(). Both create a temporary
// XLOPER12. The XLOPER12 created by TempStr12() contains the string passed to
// it. The XLOPER12 created by TempNum12() contains the number passed to it.
// The Excel12f() function frees the allocated temporary memory. Both
// functions are part of the framework library.

Excel12f(xlfGetBar, &xTest, 3, TempInt12(10), TempStr12(L"Generic"), TempInt12(0));

if (xTest.xltype == xltypeErr)
{
    hMenu = GlobalAlloc(GMEM_MOVEABLE,sizeof(XLOPER12) * g_rgMenuCols * g_rgMenuRows);
    px = pxMenu = (LPXLOPER12) GlobalLock(hMenu);

    for (i=0; i < g_rgMenuRows; i++)
    {
        for (j=0; j < g_rgMenuCols; j++)
        {
            px->xltype = xltypeStr;
            px->val.str = TempStr12(g_rgMenu[i][j])->val.str;
            px++;
        }
    }

    xMenu.xltype = xltypeMulti;
    xMenu.val.array.lparray = pxMenu;
    xMenu.val.array.rows = g_rgMenuRows;
    xMenu.val.array.columns = g_rgMenuCols;

    Excel12f(xlfAddMenu,0,3,TempNum12(10),(LPXLOPER12)&xMenu,TempStr12(L"Help"));

    GlobalUnlock(hMenu);
    GlobalFree(hMenu);
}
Другие вопросы по тегам