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


Обнаружение набора продуктов

В следующем примере функция VerifyVersionInfo используется для определения того, установлены ли указанные наборы продуктов на локальном компьютере.

В этом примере используется флаг VER_AND. Если в маске набора задано два флага, функция возвращает значение TRUE , только если присутствуют оба набора продуктов. Если пример был изменен для использования флага VER_OR, VerifyVersionInfo вернет значение TRUE , если бы существовал любой из наборов продуктов.

#include <windows.h>
#include <stdio.h>

BOOL CheckProductSuite ( WORD wSuite ) 
{
  OSVERSIONINFOEX osvi;
  DWORDLONG dwlConditionMask = 0;

  // Initialize the OSVERSIONINFOEX structure.

  ZeroMemory(&osvi, sizeof(OSVERSIONINFOEX));
  osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
  osvi.wSuiteMask = wSuite;

  // Set up the condition mask.

  VER_SET_CONDITION( dwlConditionMask, 
          VER_SUITENAME, VER_AND );

  // Perform the test.

  return VerifyVersionInfo(
          &osvi, 
          VER_SUITENAME,
          dwlConditionMask);
}

void main()
{
    if( CheckProductSuite(VER_SUITE_ENTERPRISE) )
        printf( "The system meets the requirements.\n" );
    else printf( "The system does not meet the requirements.\n");
}