Здравствуйте, tea-02, Вы писали:
T0>Привет всем!
T0>В общих словах: есть внешнее приложение. В нем есть Grid.
T0>Из среды разработки (VB 6.0) узнал его Handle, класс. Похоже он самописный!
T0>Теперь мне необходимо получить данные из него.
T0>Вопрос: Как это можно сделать используя API?
T0>Всем спасибо заранее!
Какой точно класс окна грида? Если это MSFlexGridWndClass из VB 6.0 или что-то подобное то все достаточно просто. Это ActiveX, yказатель на IMSFlexGrid получается примерно таким кодом
IMSFlexGridPtr get_grid_ptr(HWND hgrid)
{
TCHAR szClass[MAX_PATH] = {0};
::GetClassName(hgrid,szClass,MAX_PATH);
if (_tcscmp (szClass,L"MSFlexGridWndClass") != 0)
return NULL;
try
{
DWORD ptr = ::GetWindowLongA(hgrid,GWL_USERDATA);
ptr += 4;
ptr = (DWORD)(*(DWORD*)ptr);
IUnknownPtr unk = reinterpret_cast<IUnknown*>(ptr);
MSFlexGridLib::IMSFlexGridPtr flexgrid = unk;
return flexgrid;
}
catch(...)
{
return NULL;
}
}
А дальше рулите этим гридом как хотите. И самое главное : поскольку
приложение внешнее то придеться внедрять в него свою длл и уже оттуда работать.