Поделиться через


Функция GetPhysicalMonitorsFromHMONITOR (physicalmonitorenumerationapi.h)

Извлекает физические мониторы, связанные с дескриптором монитора HMONITOR .

Синтаксис

_BOOL GetPhysicalMonitorsFromHMONITOR(
  [in]  HMONITOR           hMonitor,
  [in]  DWORD              dwPhysicalMonitorArraySize,
  [out] LPPHYSICAL_MONITOR pPhysicalMonitorArray
);

Параметры

[in] hMonitor

Дескриптор монитора. Дескрипторы монитора возвращаются несколькими функциями монитора, включая EnumDisplayMonitors и MonitorFromWindow, которые являются частью интерфейса графического устройства (GDI).

[in] dwPhysicalMonitorArraySize

Число элементов в pPhysicalMonitorArray. Чтобы получить требуемый размер массива, вызовите Метод GetNumberOfPhysicalMonitorsFromHMONITOR.

[out] pPhysicalMonitorArray

Указатель на массив PHYSICAL_MONITOR структур. Вызывающий объект должен выделить массив.

Возвращаемое значение

Если функция выполняется успешно, возвращается значение TRUE. Если функция завершается сбоем, возвращается значение FALSE. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.

Комментарии

Один дескриптор HMONITOR можно связать с несколькими физическими мониторами. Эта функция возвращает дескриптор и текстовое описание для каждого физического монитора.

Завершив использование дескрипторов монитора, закройте их, передав массив pPhysicalMonitorArray в функцию DestroyPhysicalMonitors .

Примеры


HMONITOR hMonitor = NULL;
DWORD cPhysicalMonitors;
LPPHYSICAL_MONITOR pPhysicalMonitors = NULL;

// Get the monitor handle.
hMonitor = MonitorFromWindow(hWnd, MONITOR_DEFAULTTOPRIMARY);

// Get the number of physical monitors.
BOOL bSuccess = GetNumberOfPhysicalMonitorsFromHMONITOR(
  hMonitor, 
  &cPhysicalMonitors
   );

if (bSuccess)
{
    // Allocate the array of PHYSICAL_MONITOR structures.
    pPhysicalMonitors = (LPPHYSICAL_MONITOR)malloc(
        cPhysicalMonitors* sizeof(PHYSICAL_MONITOR));

    if (pPhysicalMonitors != NULL)
    {
        // Get the array.
        bSuccess = GetPhysicalMonitorsFromHMONITOR(
            hMonitor, cPhysicalMonitors, pPhysicalMonitors);

       // Use the monitor handles (not shown).

        // Close the monitor handles.
        bSuccess = DestroyPhysicalMonitors(
            cPhysicalMonitors, 
            pPhysicalMonitors);

        // Free the array.
        free(pPhysicalMonitors);
    }
}

Требования

Требование Значение
Минимальная версия клиента Windows Vista [только классические приложения]
Минимальная версия сервера Windows Server 2008 [только классические приложения]
Целевая платформа Windows
Header physicalmonitorenumerationapi.h
Библиотека Dxva2.lib
DLL Dxva2.dll

См. также раздел

Мониторинг функций конфигурации