Исходный текст
//---------------------------------------------------------
// Показывает диалог поиска объектов.
//---------------------------------------------------------
// получить диалог поиска объектов
CComPtr<ITDMSDialogs> pDialogs;
CheckError(pApp->get_Dialogs(&pDialogs));
CComPtr<ITDMSSearchObjectDlg> pSearchObjectDlg;
CheckError(pDialogs->get_SearchObjectDlg(&pSearchObjectDlg));
// выбрать объект
MessageBox(NULL, "Укажите объект в составе которого будет произведен поиск", "TDMS Example", MB_OK | MB_ICONINFORMATION);
CComPtr<ITDMSObject> pRoot;
if (SelectObject(&pRoot, pApp, NULL)) {
CheckError(pSearchObjectDlg->put_RootObject(pRoot));
}
// показать диалог
VARIANT_BOOL bResult;
CheckError(pSearchObjectDlg->Show(&bResult));
if (bResult) {
// получить коллекцию найденных объектов
CComPtr<ITDMSObjects> pObjects;
CheckError(pSearchObjectDlg->get_Objects(&pObjects));
long lCount;
CheckError(pObjects->get_Count(&lCount));
char sMsg[256];
sprintf(sMsg, "Найдено %d объектов.", lCount);
MessageBox(NULL, sMsg, "TDMS Example", MB_OK | MB_ICONINFORMATION);
}