Listing 6 Use of ListExchange_PutItems() in test program
static HWND MOCtlFns_Test_GetListWindow(HWND hwnd) { HWND hwndTab = ::GetDlgItem(hwnd, IDC_TAB); int iCurSel = TabCtrl_GetCurSel(hwndTab); int idList = Tab_GetItemData(hwndTab, iCurSel); HWND hwndList = ::GetDlgItem(hwnd, idList); _ASSERTE(idList != 0); _ASSERTE(hwndList != 0); return hwndList; } static void MOCtlFns_Test_OnClear(HWND hwnd) { HWND hwndList = MOCtlFns_Test_GetListWindow(hwnd); ListExchange_PutItems(hwndList, NULL, SYLXF_RESETCONTENT); } static void MOCtlFns_Test_OnPut(HWND hwnd) { LPUNKNOWN penItems; HRESULT hr = MOCtlFns_Test_GetEnumerator(hwnd, IID_IUnknown, reinterpret_cast<void**>(&penItems)); HWND hwndList = MOCtlFns_Test_GetListWindow(hwnd); if(SUCCEEDED(hr)) { UInt32 flags = IsDlgButtonChecked(hwnd, IDC_CLEAR_EXISTING) ? SYLXF_RESETCONTENT : 0; /* Simply pass the window, enumerator (as IUnknown) and * flags to the function. */ ListExchange_PutItems(hwndList, penItems, flags); penItems->Release(); } }