From acd3382565410cb1bf989f6bf9a2fcb1f72bcc90 Mon Sep 17 00:00:00 2001 From: Andrew Riedi Date: Wed, 24 Dec 2008 12:47:38 -0800 Subject: [PATCH] kernel32: Add GetProductInfo() stub & defines. MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Based on a patch by Alexander Nicolaysen Sørnes. --- dlls/kernel32/kernel32.spec | 1 + dlls/kernel32/version.c | 22 ++++++++++++++++++++++ include/winbase.h | 43 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 66 insertions(+), 0 deletions(-) diff --git a/dlls/kernel32/kernel32.spec b/dlls/kernel32/kernel32.spec index 32e3523..c59f4e2 100644 --- a/dlls/kernel32/kernel32.spec +++ b/dlls/kernel32/kernel32.spec @@ -1197,6 +1197,7 @@ @ stdcall lstrlen(str) lstrlenA @ stdcall lstrlenA(str) @ stdcall lstrlenW(wstr) +@ stdcall GetProductInfo(long long long long ptr) ################################################################ # Wine extensions: Win16 functions that are needed by other dlls diff --git a/dlls/kernel32/version.c b/dlls/kernel32/version.c index 48f9bb2..ea4e490 100644 --- a/dlls/kernel32/version.c +++ b/dlls/kernel32/version.c @@ -391,3 +391,25 @@ DWORD WINAPI SetTermsrvAppInstallMode(BOOL bInstallMode) FIXME("(%d): stub\n", bInstallMode); return 0; } + +/*********************************************************************** + * GetProductInfo (KERNEL32.@) + * + * Compares the info for the current OS against the given criteria. + * + * Returns the info for the required OS if the criteria are not met, info for + * the current OS otherwise. + * + * Returns TRUE if the criteria are met. + */ +BOOL WINAPI GetProductInfo(DWORD dwOSMajorVersion, DWORD dwOSMinorVersion, DWORD dwSpMajorVersion, DWORD dwSpMinorVersion, PDWORD pdwReturnedProductType) +{ + FIXME("(%d,%d,%d,%d,%p): stub\n", dwOSMajorVersion, dwOSMinorVersion, dwSpMajorVersion, dwSpMinorVersion, pdwReturnedProductType); + + if (dwOSMajorVersion < 6 || pdwReturnedProductType == NULL) + return FALSE; + + *pdwReturnedProductType = PRODUCT_ULTIMATE_N; + + return TRUE; +} diff --git a/include/winbase.h b/include/winbase.h index f7bb9bf..f044ef6 100644 --- a/include/winbase.h +++ b/include/winbase.h @@ -1270,6 +1270,48 @@ typedef struct _WIN32_STREAM_ID { #define DDD_NO_BROADCAST_SYSTEM 0x00000008 #define DDD_LUID_BROADCAST_DRIVE 0x00000010 +/* GetProductInfo return values. */ +#define PRODUCT_UNLICENSED 0xABCDABCD +#define PRODUCT_BUSINESS 0x00000006 +#define PRODUCT_BUSINESS_N 0x00000010 +#define PRODUCT_CLUSTER_SERVER 0x00000012 +#define PRODUCT_DATACENTER_SERVER 0x00000008 +#define PRODUCT_DATACENTER_SERVER_CORE 0x0000000C +#define PRODUCT_DATACENTER_SERVER_CORE_V 0x00000027 +#define PRODUCT_SERVER_V 0x00000025 +#define PRODUCT_ENTERPRISE 0x00000004 +#define PRODUCT_ENTERPRISE_N 0x0000001B +#define PRODUCT_ENTERPRISE_SERVER 0x0000000A +#define PRODUCT_ENTERPRISE_SERVER_CORE 0x0000000E +#define PRODUCT_ENTERPRISE_SERVER_CORE_V 0x00000029 +#define PRODUCT_ENTERPRISE_SERVER_IA64 0x0000000F +#define PRODUCT_ENTERPRISE_SERVER_V 0x00000026 +#define PRODUCT_HOME_BASIC 0x00000002 +#define PRODUCT_HOME_BASIC_N 0x00000005 +#define PRODUCT_HOME_PREMIUM 0x00000003 +#define PRODUCT_HOME_PREMIUM_N 0x0000001A +#define PRODUCT_HYPERV 0x0000002A +#define PRODUCT_MEDIUMBUSINESS_SERVER_MANAGEMENT 0x0000001E +#define PRODUCT_MEDIUMBUSINESS_SERVER_MESSAGING 0x00000020 +#define PRODUCT_MEDIUMBUSINESS_SERVER_SECURITY 0x0000001F +#define PRODUCT_SERVER_FOR_SMALLBUSINESS 0x00000018 +#define PRODUCT_SERVER_FOR_SMALLBUSINESS_V 0x00000023 +#define PRODUCT_SMALLBUSINESS_SERVER 0x00000009 +#define PRODUCT_STANDARD_SERVER 0x00000007 +#define PRODUCT_STANDARD_SERVER_CORE 0x0000000D +#define PRODUCT_STANDARD_SERVER_CORE_V 0x00000028 +#define PRODUCT_STANDARD_SERVER_V 0x00000024 +#define PRODUCT_STARTER 0x0000000B +#define PRODUCT_STORAGE_ENTERPRISE_SERVER 0x00000017 +#define PRODUCT_STORAGE_EXPRESS_SERVER 0x00000014 +#define PRODUCT_STORAGE_STANDARD_SERVER 0x00000015 +#define PRODUCT_STORAGE_WORKGROUP_SERVER 0x00000016 +#define PRODUCT_UNDEFINED 0x00000000 +#define PRODUCT_ULTIMATE 0x00000001 +#define PRODUCT_ULTIMATE_N 0x0000001C +#define PRODUCT_WEB_SERVER 0x00000011 +#define PRODUCT_WEB_SERVER_CORE 0x0000001D + WINBASEAPI BOOL WINAPI ActivateActCtx(HANDLE,ULONG_PTR *); WINADVAPI BOOL WINAPI AddAccessAllowedAce(PACL,DWORD,DWORD,PSID); WINADVAPI BOOL WINAPI AddAccessAllowedAceEx(PACL,DWORD,DWORD,DWORD,PSID); @@ -1680,6 +1722,7 @@ WINBASEAPI BOOL WINAPI GetProcessShutdownParameters(LPDWORD,LPDWORD); WINBASEAPI BOOL WINAPI GetProcessTimes(HANDLE,LPFILETIME,LPFILETIME,LPFILETIME,LPFILETIME); WINBASEAPI DWORD WINAPI GetProcessVersion(DWORD); WINBASEAPI BOOL WINAPI GetProcessWorkingSetSize(HANDLE,PSIZE_T,PSIZE_T); +WINBASEAPI BOOL WINAPI GetProductInfo(DWORD,DWORD,DWORD,DWORD,PDWORD); WINBASEAPI UINT WINAPI GetProfileIntA(LPCSTR,LPCSTR,INT); WINBASEAPI UINT WINAPI GetProfileIntW(LPCWSTR,LPCWSTR,INT); #define GetProfileInt WINELIB_NAME_AW(GetProfileInt) -- 1.5.6.3