47 _Out_ PIMEMENUITEMINFO lpImeParentMenu,
52 pItem->m_Info = *lpImeParentMenu;
54 if (lpImeParentMenu->fType & IMFT_SUBMENU)
55 pItem->m_pSubMenu =
CreateImeMenu(hIMC, lpImeParentMenu, bRightMenu);
57 pItem->m_nRealID = pItem->m_Info.wID;
67 const DWORD dwFlags = (bRightMenu ? IGIMIF_RIGHTMENU : 0);
68 const DWORD dwTypes = IGIMII_CMODE |
74 DWORD itemCount = ImmGetImeMenuItems(hIMC,
dwFlags, dwTypes, lpImeParentMenu,
NULL, 0);
82 DWORD cbItems =
sizeof(IMEMENUITEMINFO) * itemCount;
90 itemCount = ImmGetImeMenuItems(hIMC,
dwFlags, dwTypes, lpImeParentMenu, pImeMenuItems, cbItems);
99 for (
DWORD iItem = 0; iItem < itemCount; ++iItem)
114 pItemInfo->wID = pItem->m_Info.wID;
115 pItemInfo->fState = pItem->m_Info.fState;
116 pItemInfo->dwItemData = pItem->m_Info.dwItemData;
118 if (pItem->m_Info.fType)
121 pItemInfo->fType = 0;
122 if (pItem->m_Info.fType & IMFT_RADIOCHECK)
124 if (pItem->m_Info.fType & IMFT_SEPARATOR)
128 if (pItem->m_Info.fType & IMFT_SUBMENU)
132 if (!
MakeImeMenu(pItemInfo->hSubMenu, pItem->m_pSubMenu))
135 pItemInfo->hSubMenu =
NULL;
140 if (pItem->m_Info.hbmpChecked && pItem->m_Info.hbmpUnchecked)
143 pItemInfo->hbmpChecked = pItem->m_Info.hbmpChecked;
144 pItemInfo->hbmpUnchecked = pItem->m_Info.hbmpUnchecked;
147 if (pItem->m_Info.hbmpItem)
150 pItemInfo->hbmpItem = pItem->m_Info.hbmpItem;
153 PCTSTR szString = pItem->m_Info.szString;
154 if (szString && szString[0])
157 pItemInfo->dwTypeData = (
PTSTR)szString;
158 pItemInfo->cch =
lstrlen(szString);
167 if (!pMenu || !pMenu->m_nItems)
170 for (
INT iItem = 0; iItem < pMenu->m_nItems; ++iItem)
175 ERR(
"FillImeMenuItem failed\n");
180 ERR(
"InsertMenuItem failed\n");
207 for (
INT iItem = 0; iItem < pMenu->m_nItems; ++iItem)
210 if (pItem->
m_Info.wID == nFakeID)
230 for (
INT iItem = 0; iItem < pMenuNode->m_nItems; ++iItem)
233 if (pItem->
m_Info.hbmpChecked)
235 if (pItem->
m_Info.hbmpUnchecked)
237 if (pItem->
m_Info.hbmpItem)
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
HLOCAL NTAPI LocalAlloc(UINT uFlags, SIZE_T dwBytes)
HLOCAL NTAPI LocalFree(HLOCAL hMem)
LPCWSTR LPCWSTR LPCWSTR DWORD dwFlags
static const CLSID *static CLSID *static const GUID VARIANT VARIANT *static IServiceProvider DWORD *static HMENU
static int int const SCRIPT_CONTROL const SCRIPT_STATE SCRIPT_ITEM * pItems
HMENU WINAPI CreatePopupMenu(void)
BOOL WINAPI DestroyMenu(_In_ HMENU)
MENUITEMINFOA MENUITEMINFO