Я использую EnumDisplayMonitor для получения информации о дисплеях, подключенных к системе.Вызов EnumDisplayMonitor требует наличия функции обратного вызова, которая затем вызывается для получения сведений о каждом перечисленном мониторе.У меня вопрос, когда EnumDisplayMonitor возвращается?Это происходит немедленно или блокируется до тех пор, пока не будет вызван обратный вызов для каждого перечисленного монитора?Я хочу обработать структуру данных, которая будет изменена обратными вызовами, и мне нужно знать, безопасно ли это делать сразу после вызова EnumDisplayMonitor.Если вызов не блокируется, есть ли способ проверить, что обратный вызов завершен, вызывается?Это может быть общий вопрос о обратных вызовах ....
например
BOOL CALLBACK MonitorEnumProc(
__in HMONITOR hMonitor,
__in HDC hdcMonitor,
__in LPRECT lprcMonitor,
__in LPARAM dwData)
{
// Alter something here - e.g. Add lprcMonitor to a list.
}
int main()
{
EnumDisplayMonitor(NULL, NULL, MonitorEnumProc, 0);
// Can I rely on EnumDisplayMonitor to have finished making calls to
// MonitorEnumProc at this point?
}
Я проверил запись MSDN, и это не помогает в этом отношении, и я подтвердил бы экспериментом, ноУ меня недостаточно мониторов для надежного тестирования.