Реферат: API Spying

{

// См. «Чем же всё это закончится?»

void* spyMem = HeapAlloc(GetProcessHeap(), 0, sizeof(spy_function));

spy_function* spy = new(spyMem) spy_function;

// Устанавливаемеёпараметры.

spy->number.value = number;

spy->statistic.address.set_absolute(collectStatistic);

spy->func.address.set_absolute(address);

// Возвращаем указатель на функцию-шпион.

return spy;

}

catch (...)

{

// Несудьба

PostMessage(g_hSecretWindow, WM_CANNOTHOOK, number, 0);

// Возвращаем указатель на функцию

return address;

}

}

collectStatistic

Поскольку данных мало и посылать их несложно, функция collectStatistic получилась просто замечательная:

void __stdcall collectStatistic(unsigned long n)

{

// Посылаемномервызываемойфункции

PostMessage(g_hSecretWindow, WM_CALLED, n, 0);

}

Хранение и отображение

И тем и другим занимается внешнее приложение. Реализовано всё крайне незамысловато:

// Структура, хранящая статистику для одной функции

К-во Просмотров: 999
Бесплатно скачать Реферат: API Spying