programming tools for Windows applications development
  Home  |   SwiftForth Archive  |   SwiftX Archive  |

Using WinINet.dll - Frustration

From: Jason Damisch <jasondamisch_at_yahoo.com>
Date: Fri, 2 Jun 2006 14:01:45 -0700 (PDT)

Thank you for your help so far. I am taking my mallet
and clobbering both WinHttp.dll, and WinINet.dll, one
right after another, in the hopes that SOME DAY either
one of them will break open for me. I have that
little faith in B.G. and Friends(tm) Here is the code
that I have so far for WinINet.dll, which took me all
night to figure do.

\ =================

VARIABLE CHASM
VARIABLE RECEIVE-LEN

\ =================

VARIABLE ROOT-HANDLE
VARIABLE SESSION-HANDLE
VARIABLE REQUEST-HANDLE

VARIABLE DWCONTEXT 555 DWCONTEXT !
VARIABLE DWCONTEXT2 666 DWCONTEXT !

CREATE HOLDER 128 ALLOT

1 CONSTANT FLAG_ICC_FORCE_CONNECTION
1 CONSTANT INTERNET_OPEN_TYPE_DIRECT
443 CONSTANT INTERNET_DEFAULT_HTTPS_PORT
3 CONSTANT INTERNET_SERVICE_HTTP
HEX 20000000 CONSTANT HTTP_ADDREQ_FLAG_ADD DECIMAL

CREATE LPDWINDEX 128 ALLOT

LIBRARY WinINet.dll

1 Import: InternetAttemptConnect ( dwReserved --
success/failure ) \ must be passed 0 , 0 =
success

3 Import: InternetCheckConnection ( lpszUrl dwFlag
 dwReserved -- f ) \ use full path for URL

5 Import: InternetOpen ( lpszAgent dwAccessType
lpszProxyName lpszProxyBypass dwFlags -- hinternet
 )

1 Import: InternetCloseHandle ( hinternet -- f ) \
be sure to close handles from both InternetOpen and
InternetConnect

8 Import: InternetConnect
\ ( hInternet lpszServerName nServerPort
lpszUsername lpszPassword dwService dwFlags
dwContext -- handle )

8 Import: HttpOpenRequest
\ ( hConnect lpszVerb lpszObjectName lpszVersion
lpszReferer lpszAcceptTypes dwFlags dwContext --
handle )

4 Import: HttpAddRequestHeaders ( hConnect
lpszHeaders dwHeadersLength dwModifiers -- f )

5 Import: HttpSendRequest ( hRequest lpszHeaders
dwHeadersLength lpOptional dwOptionalLength -- f
)

5 Import: HttpQueryInfo ( hRequest dwInfoLevel
lpvBuffer lpdwBufferLength lpdwIndex -- f ) (
!!! )

: <SEND>

\ S" GeteBayOfficialTime" CALL-NAME PLACE

  0 InternetAttemptConnect .

  z" https://api.sandbox.ebay.com"
FLAG_ICC_FORCE_CONNECTION 0 InternetCheckConnection
.

  z" SoftTofu" INTERNET_OPEN_TYPE_DIRECT 0 0 0
InternetOpen DUP . ROOT-HANDLE !

  ROOT-HANDLE @
  z" https://api.sandbox.ebay.com"
  INTERNET_DEFAULT_HTTPS_PORT
  Z" TEST"
  Z" TEST"
  INTERNET_SERVICE_HTTP
  0
  DWCONTEXT
  InternetConnect DUP . SESSION-HANDLE !

  SESSION-HANDLE @
  Z" POST"
  Z" api.dll"
  0
  Z" https://api.sandbox.ebay.com/ws/"
  0
  0
  DWCONTEXT2
  HttpOpenRequest DUP . REQUEST-HANDLE !

 REQUEST-HANDLE @ S" X-EBAY-API-COMPATIBILITY-LEVEL:
457" HTTP_ADDREQ_FLAG_ADD HttpAddRequestHeaders .
 REQUEST-HANDLE @ S" X-EBAY-API-SESSION-CERTIFICATE:

M2962NHAD99VFB7LI77PD136Z453WP;RICHARDLONJ5YD8441Z2F8N141IKH9;H2QG21K1DU3$JF3488KCT-61W3N344"
HTTP_ADDREQ_FLAG_ADD

HttpAddRequestHeaders .
 REQUEST-HANDLE @ S" X-EBAY-API-DEV-NAME:
M2962NHAD99VFB7LI77PD136Z453WP" HTTP_ADDREQ_FLAG_ADD
HttpAddRequestHeaders .
 REQUEST-HANDLE @ S" X-EBAY-API-APP-NAME:
RICHARDLONJ5YD8441Z2F8N141IKH9" HTTP_ADDREQ_FLAG_ADD
HttpAddRequestHeaders .
 REQUEST-HANDLE @ S" X-EBAY-API-CERT-NAME:
H2QG21K1DU3$JF3488KCT-61W3N344" HTTP_ADDREQ_FLAG_ADD
HttpAddRequestHeaders .
   REQUEST-HANDLE @ S" X-EBAY-API-CALL-NAME: " HOLDER
PLACE CALL-NAME COUNT HOLDER APPEND
   HOLDER COUNT HTTP_ADDREQ_FLAG_ADD
HttpAddRequestHeaders .
 REQUEST-HANDLE @ S" X-EBAY-API-SITEID: 0"
HTTP_ADDREQ_FLAG_ADD HttpAddRequestHeaders .
 REQUEST-HANDLE @ S" Content-Type: text/xml"
HTTP_ADDREQ_FLAG_ADD HttpAddRequestHeaders .

REQUEST-HANDLE @ 0 0 CHASM @ CH @ CHASM @ -
       HttpSendRequest .

1024 10 * RECEIVE-LEN !
REQUEST-HANDLE @ 0 CHASM RECEIVE-LEN LPDWINDEX
HttpQueryInfo .

  REQUEST-HANDLE @ InternetCloseHandle .
  SESSION-HANDLE @ InternetCloseHandle .
  ROOT-HANDLE @ InternetCloseHandle .
  ;

What happens is that all of the calls say that they
are successful ( but who knows if I really did them
right ), except for HttpSendRequest and HttpQueryInfo.
 What am I doing wrong?

Jason
----------------------------------------------------------------------
sftalk_at_forth.com The SwiftForth programming discussion email list
To unsubscribe, send subject "unsubscribe" to sftalk-request_at_forth.com
For list command help, send subject "help" to sftalk-request_at_forth.com
Message archives are located at http://www.forth.com/archive/sftalk
----------------------------------------------------------------------
This list is a forum for SwiftForth users. For product support and bug
reports, please send email to support_at_forth.com
----------------------------------------------------------------------
Received on Fri Jun 02 2006 - 14:02:31 PDT

This archive was generated by hypermail 2.2.0 : Wed Jan 07 2009 - 03:04:16 PST