In C:\Program Files\Microsoft SDKs\Windows\v7.0A\Include\WinCrypt.h definition of CERT_CHAIN_ENGINE_CONFIG is equal to
typedef struct _CERT_CHAIN_ENGINE_CONFIG { DWORD cbSize; HCERTSTORE hRestrictedRoot; HCERTSTORE hRestrictedTrust; HCERTSTORE hRestrictedOther; DWORD cAdditionalStore; HCERTSTORE* rghAdditionalStore; DWORD dwFlags; DWORD dwUrlRetrievalTimeout;
I am using visual studio 2010 on an XP sp3 machine, in which case I expect the next two elements in the above structure to be grayed out. But this is not happening
#if (NTDDI_VERSION >= NTDDI_WIN7) HCERTSTORE hExclusiveRoot; HCERTSTORE hExclusiveTrustedPeople; #endif
NTDDI_VERSION in turn, is defined in sdkddkver.h as follows, and _WIN32_WINNT somehow assumes the value NTDDI_WIN7 , which is incorrect in my case, since my machine is XP SP3.
#if !defined(_WIN32_WINNT) && !defined(_CHICAGO_) #define _WIN32_WINNT 0x0601 #endif #ifndef NTDDI_VERSION #ifdef _WIN32_WINNT // set NTDDI_VERSION based on _WIN32_WINNT #define NTDDI_VERSION NTDDI_VERSION_FROM_WIN32_WINNT(_WIN32_WINNT) #else #define NTDDI_VERSION 0x06010000 #endif #endif
The above two elements of the CERT_CHAIN_ENGINE_CONFIG structure in question are not present in C:\Program Files\Microsoft SDKs\Windows\v6.0A\Include\WinCrypt.h But my visual studio project in 2010 automatically draws the header and lib files from C:\Program Files\Microsoft SDKs\Windows\v7.0A\Include\WinCrypt.h Due to conflicting structures, I get parameter is incorrect
Please advise how can I deal with this problem?
Should I install visual studio 2010 sp1?
I found one link on the Internet that says that initializing the structure will solve the problem, but it wonβt, because the two parameters in the question will not be grayed out and will be used in the construction.
Update1:
My project settings:
$ (VCInstalDir) β C: \ Program Files \ Microsoft Visual Studio 10.0 \ VC
$ (WindowsSdkDir) β C: \ Program Files \ Microsoft SDK \ Windows \ v7.0A
$ (FrameworkSdkDir) β C: \ Program Files \ Microsoft SDK \ Windows \ v7.0A
Library file settings,
$(VCInstallDir)lib $(VCInstallDir)atlmfc\lib $(WindowsSdkDir)lib $(FrameworkSDKDir)\lib
UPDATE 2: My preprocessor definition
WIN32;_DEBUG;_WINDOWS;_USRDLL;MY_DLL_EXPORTS;%(PreprocessorDefinitions)
% (PreprocessorDefinitions) inherited values ββas follows
_WINDLL _MBCS
thanks