Hi,

Please find my patch for OverbyteIcsUtils.pas below. I have added a series
of $EXTERNALSYM directives in order to prevent symbols duplications. Pascal
constants own exactly same names as corresponding windows constants defined
in .h file. In case they would be contained in generated .hpp file all of
tchem would be duplicated.

Unfortunately everytime I download new ICS package I need to apply this
patch. It would be easier for C++ users if it would be already there.
It doesnt affect Delphi users in any way.
Thanks in advance.

//-----start of patch -------line 612
{$IFDEF MSWINDOWS}
{ V8.38 constants and records for Wintrust }
const
  WINTRUST_ACTION_GENERIC_VERIFY_V2: TGUID =
'{00AAC56B-CD44-11d0-8CC2-00C04FC295EE}' ;

  TRUST_E_NOSIGNATURE = HRESULT($800B0100);
  {$EXTERNALSYM TRUST_E_NOSIGNATURE}
  CERT_E_EXPIRED = HRESULT($800B0101);
  {$EXTERNALSYM CERT_E_EXPIRED}
  CERT_E_VALIDITYPERIODNESTING = HRESULT($800B0102);
  {$EXTERNALSYM CERT_E_VALIDITYPERIODNESTING}
  CERT_E_ROLE = HRESULT($800B0103);
   {$EXTERNALSYM CERT_E_ROLE}
  CERT_E_PATHLENCONST = HRESULT($800B0104);
   {$EXTERNALSYM CERT_E_PATHLENCONST}
  CERT_E_CRITICAL = HRESULT($800B0105);
   {$EXTERNALSYM CERT_E_CRITICAL}
  CERT_E_PURPOSE = HRESULT($800B0106);
   {$EXTERNALSYM CERT_E_PURPOSE}
  CERT_E_ISSUERCHAINING = HRESULT($800B0107);
   {$EXTERNALSYM CERT_E_ISSUERCHAINING}
  CERT_E_MALFORMED = HRESULT($800B0108);
   {$EXTERNALSYM CERT_E_MALFORMED}
  CERT_E_UNTRUSTEDROOT = HRESULT($800B0109);
   {$EXTERNALSYM CERT_E_UNTRUSTEDROOT}
  CERT_E_CHAINING = HRESULT($800B010A);
   {$EXTERNALSYM CERT_E_CHAINING}
  TRUST_E_FAIL = HRESULT($800B010B);
   {$EXTERNALSYM TRUST_E_FAIL}
  CERT_E_REVOKED = HRESULT($800B010C);
   {$EXTERNALSYM CERT_E_REVOKED}
  CERT_E_UNTRUSTEDTESTROOT = HRESULT($800B010D);
   {$EXTERNALSYM CERT_E_UNTRUSTEDTESTROOT}
  CERT_E_REVOCATION_FAILURE = HRESULT($800B010E);
   {$EXTERNALSYM CERT_E_REVOCATION_FAILURE}
  CERT_E_CN_NO_MATCH = HRESULT($800B010F);
   {$EXTERNALSYM CERT_E_CN_NO_MATCH}
  CERT_E_WRONG_USAGE = HRESULT($800B0110);
   {$EXTERNALSYM CERT_E_WRONG_USAGE}
  TRUST_E_EXPLICIT_DISTRUST = HRESULT($800B0111);
   {$EXTERNALSYM TRUST_E_EXPLICIT_DISTRUST}
  CERT_E_UNTRUSTEDCA = HRESULT($800B0112);
   {$EXTERNALSYM CERT_E_UNTRUSTEDCA}
  CERT_E_INVALID_POLICY = HRESULT($800B0113);
   {$EXTERNALSYM CERT_E_INVALID_POLICY}
  CERT_E_INVALID_NAME = HRESULT($800B0114);
   {$EXTERNALSYM CERT_E_INVALID_NAME}
  TRUST_E_SYSTEM_ERROR = HRESULT($80096001);
   {$EXTERNALSYM TRUST_E_SYSTEM_ERROR}
  TRUST_E_NO_SIGNER_CERT = HRESULT($80096002);
   {$EXTERNALSYM TRUST_E_NO_SIGNER_CERT}
  TRUST_E_COUNTER_SIGNER = HRESULT($80096003);
   {$EXTERNALSYM TRUST_E_COUNTER_SIGNER}
  TRUST_E_CERT_SIGNATURE = HRESULT($80096004);
   {$EXTERNALSYM TRUST_E_CERT_SIGNATURE}
  TRUST_E_TIME_STAMP = HRESULT($80096005);
   {$EXTERNALSYM TRUST_E_TIME_STAMP}
  TRUST_E_BAD_DIGEST = HRESULT($80096010);
   {$EXTERNALSYM TRUST_E_BAD_DIGEST}
  TRUST_E_BASIC_CONSTRAINTS = HRESULT($80096019);
   {$EXTERNALSYM TRUST_E_BASIC_CONSTRAINTS}
  TRUST_E_FINANCIAL_CRITERIA = HRESULT($8009601E);
   {$EXTERNALSYM TRUST_E_FINANCIAL_CRITERIA}
  CRYPT_E_SECURITY_SETTINGS = HRESULT($80092026);
   {$EXTERNALSYM CRYPT_E_SECURITY_SETTINGS}

  WTCI_DONT_OPEN_STORES = $00000001 ; // only open dummy "root" all other
are in pahStores.
   {$EXTERNALSYM WTCI_DONT_OPEN_STORES}
  WTCI_OPEN_ONLY_ROOT = $00000002 ;
   {$EXTERNALSYM WTCI_OPEN_ONLY_ROOT}

// _WINTRUST_DATA.dwUIChoice
    WTD_UI_ALL    = 1 ;
   {$EXTERNALSYM WTD_UI_ALL}
    WTD_UI_NONE   = 2 ;
   {$EXTERNALSYM WTD_UI_NONE}
    WTD_UI_NOBAD  = 3 ;
   {$EXTERNALSYM WTD_UI_NOBAD}
    WTD_UI_NOGOOD = 4 ;
   {$EXTERNALSYM WTD_UI_NOGOOD}

// _WINTRUST_DATA.fdwRevocationChecks
    WTD_REVOKE_NONE       = $00000000 ;
   {$EXTERNALSYM WTD_REVOKE_NONE}
    WTD_REVOKE_WHOLECHAIN = $00000001 ;
   {$EXTERNALSYM WTD_REVOKE_WHOLECHAIN}

// _WINTRUST_DATA.dwUnionChoice
    WTD_CHOICE_FILE    = 1 ;
   {$EXTERNALSYM WTD_CHOICE_FILE}
    WTD_CHOICE_CATALOG = 2 ;
   {$EXTERNALSYM WTD_CHOICE_CATALOG}
    WTD_CHOICE_BLOB    = 3 ;
   {$EXTERNALSYM WTD_CHOICE_BLOB}
    WTD_CHOICE_SIGNER  = 4 ;
   {$EXTERNALSYM WTD_CHOICE_SIGNER}
    WTD_CHOICE_CERT    = 5 ;
   {$EXTERNALSYM WTD_CHOICE_CERT}

// _WINTRUST_DATA.dwStateAction
    WTD_STATEACTION_IGNORE  = $00000000 ;
   {$EXTERNALSYM WTD_STATEACTION_IGNORE}
    WTD_STATEACTION_VERIFY  = $00000001 ;
   {$EXTERNALSYM WTD_STATEACTION_VERIFY}
    WTD_STATEACTION_CLOSE   = $00000002 ;
   {$EXTERNALSYM WTD_STATEACTION_CLOSE}
    WTD_STATEACTION_AUTO_CACHE       = $00000003 ;
   {$EXTERNALSYM WTD_STATEACTION_AUTO_CACHE}
    WTD_STATEACTION_AUTO_CACHE_FLUSH = $00000004 ;
   {$EXTERNALSYM WTD_STATEACTION_AUTO_CACHE_FLUSH}
    WTD_PROV_FLAGS_MASK     = $0000FFFF ;
   {$EXTERNALSYM WTD_PROV_FLAGS_MASK}
    WTD_USE_IE4_TRUST_FLAG  = $00000001 ;
   {$EXTERNALSYM WTD_USE_IE4_TRUST_FLAG}
    WTD_NO_IE4_CHAIN_FLAG   = $00000002 ;
   {$EXTERNALSYM WTD_NO_IE4_CHAIN_FLAG}
    WTD_NO_POLICY_USAGE_FLAG = $00000004 ;
   {$EXTERNALSYM WTD_NO_POLICY_USAGE_FLAG}
    WTD_REVOCATION_CHECK_NONE = $00000010 ;
   {$EXTERNALSYM WTD_REVOCATION_CHECK_NONE}
    WTD_REVOCATION_CHECK_END_CERT = $00000020 ;
   {$EXTERNALSYM WTD_REVOCATION_CHECK_END_CERT}
    WTD_REVOCATION_CHECK_CHAIN    = $00000040 ;
   {$EXTERNALSYM WTD_REVOCATION_CHECK_CHAIN}
    WTD_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT = $00000080 ;
   {$EXTERNALSYM WTD_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT}
    WTD_SAFER_FLAG                 = $00000100 ;
   {$EXTERNALSYM WTD_SAFER_FLAG}
    WTD_HASH_ONLY_FLAG             = $00000200 ;
   {$EXTERNALSYM WTD_HASH_ONLY_FLAG}
    WTD_USE_DEFAULT_OSVER_CHECK    = $00000400 ;
   {$EXTERNALSYM WTD_USE_DEFAULT_OSVER_CHECK}
    WTD_LIFETIME_SIGNING_FLAG      = $00000800 ;
   {$EXTERNALSYM WTD_LIFETIME_SIGNING_FLAG}
    WTD_CACHE_ONLY_URL_RETRIEVAL   = $00001000 ; // affects CRL retrieval
and AIA retrieval }
   {$EXTERNALSYM WTD_CACHE_ONLY_URL_RETRIEVAL}
    WTD_UICONTEXT_EXECUTE = 0 ;
   {$EXTERNALSYM WTD_UICONTEXT_EXECUTE}
    WTD_UICONTEXT_INSTALL = 1 ;
   {$EXTERNALSYM WTD_UICONTEXT_INSTALL}

type
    PVOID           = Pointer;
   {$EXTERNALSYM PVOID}

//---end of patch


Pozdrawiam

Jarek Karciarz
OSITRON

-----Original Message-----
From: TWSocket [mailto:twsocket-boun...@lists.elists.org] On Behalf Of Noam
Weissman
Sent: Tuesday, April 4, 2017 10:31 AM
To: ICS support mailing <twsocket@lists.elists.org>; Angus Robertson -
Magenta Systems Ltd <an...@magsys.co.uk>
Subject: Re: [twsocket] Latest ICS 8.44 and C++Builder 10.2

Hi Jarek,

That would be great :-)

Waiting for you update !

Many thanks,
Noam. 

-----Original Message-----
From: TWSocket [mailto:twsocket-boun...@lists.elists.org] On Behalf Of Jarek
Karciarz
Sent: Tuesday, April 04, 2017 11:08 AM
To: ICS support mailing; Angus Robertson - Magenta Systems Ltd
Subject: Re: [twsocket] Latest ICS 8.44 and C++Builder 10.2

Hi
Regarding errors in overbyteIcsUtils.pas they occur only under c++. I have
fixed them. I will post the changes here today evening.
Hopefully Angus could update the file so that future releases are not
affected. For now after every release I need to update the file on myself.
Regarding 10.2 c++  usage I cannot say much right now. Currently I have
successfully compiled and installed vcl only packages. But I didn't use them
yet as I have problem with other package.
After fixing other package I can eventually confirm ics usage for c++ 10.2

Pozdrawiam

Jarek Karciarz



----------
Od: Angus Robertson - Magenta Systems Ltd <an...@magsys.co.uk>
Data: 4 kwietnia 2017 09:36:19
Do: twsocket@lists.elists.org
Temat: Re: [twsocket] Latest ICS 8.44 and C++Builder 10.2

>> I have installed C++Builder 10.2 and triad to add the ICS components. 
>> I got a few errors like Duplicated components FMX etc_
>
> Sorry, as the readme and download pages clearly state, the last C++ 
> release ICS officially supported was XE3 for which packages are 
> available.
>
> None of the current ICS maintainers have C++ experience, so we can not 
> test ICS on C++.
>
> A couple of users in this mailing list have said they have got recent
> c++ versions working, but no-one has been able to supply all the
> missing packages necessary for a distribution.
>
> Without C++ volunteers, there will be no C++ version.  If anyone here 
> can build packages for C++ 10 or later, please update the latest 
> nightly V8 zip with all the files and changes necessary, and I'll add 
> the changes to SVN.  A few emailed files is not sufficient.
>
> Angus
>
> --
> To unsubscribe or change your settings for TWSocket mailing list 
> please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket
> Visit our website at http://www.overbyte.be


--
To unsubscribe or change your settings for TWSocket mailing list please goto
http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be
--
To unsubscribe or change your settings for TWSocket mailing list please goto
http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be

-- 
To unsubscribe or change your settings for TWSocket mailing list
please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be

Reply via email to