Czy ktoś z was podpisywał SOAP certyfikatem w Delphi7? Mam (głupie) pytanie.

Znalazłem kilka stron, które opisują jak to zrobić, między innymi

https://groups.google.com/forum/#!msg/borland.public.delphi.webservices.soap/EaoWgZ2J8uE/wsUvjXFT1YYJ
https://forums.embarcadero.com/thread.jspa?messageID=425831

ale napotkałem na problem przy wykonywaniu polecenia InternetSetOption lub wczesniej Get_CertContext.
[Error] Unit1.pas(80): '(' expected but ')' found (i to jest właśnie głupie)

W projekcie używam :
CAPICOM_TLB ściągniętych ze strony
http://www.microsoft.com/en-us/download/details.aspx?id=25281
JwaWinCrypt ściągniętych ze strony
http://jedi.grizzlydev.com/www/apilibrary.html (pierwszy link http://jedi.grizzlydev.com/www/files/api/win32api.zip)

Męczę się z tym już dłuższą chwilę, myślenie mi się już powoli kończy a doszedłem do postaci jak niżej.

Poniżej kawałek mojego kodu.

procedure TForm1.OnBeforePost(const HTTPReqResp: THTTPReqResp;
  Data: Pointer);
var
  store: TStore;
  certificates: ICertificates;
  certificate: ICertificate2;
  i:integer;
  ss:string;

  CertContext  : ICertContext;
  v : OleVariant;
begin
  v := '9DF80D9E2(...)'; // tutaj odcisk palca mojego certyfikatu

  store := TStore.Create(nil);
  store.Open(CAPICOM_CURRENT_USER_STORE, 'AddressBook', CAPICOM_STORE_OPEN_MAXIMUM_ALLOWED or CAPICOM_STORE_OPEN_INCLUDE_ARCHIVED or CAPICOM_STORE_OPEN_EXISTING_ONLY);

  certificates := store.Certificates;
  for i := 1 to certificates.count do
  begin
    certificate := IInterface(certificates.Item[i]) as ICertificate2;
    ss := certificate.Thumbprint;

    if ss = v then
    begin
      CertContext := certificate as ICertContext;
      CertContext.Get_CertContext( Integer( PCertContext ) );

      if InternetSetOption( Data, INTERNET_OPTION_CLIENT_CERT_CONTEXT,
        PCertContext, Sizeof( CERT_CONTEXT ) ) = False then
      begin
        ShowMessage( 'Something went wrong' );
      end;
    end;
  end;

  store.close();
  store.Free;
end;