Solved

Error 12005 Trying to Call WINHTTPCONNECT Function in WINHTTP DLL from VB

Posted on 2008-06-25
10
1,905 Views
Last Modified: 2013-12-20
I am trying to call Winhttp.dll from a VB app. I specifically need to carry out this process using windows native DLL's, not COM objects.
When I run the attached code, I get the error 12005, could someone explain why, and offer a solution.
Please note my final solution will be adapted to run in an uncommon language (Omnis 7), so please keep this in mind for your replies.
Public Declare Function WinHttpOpen Lib "WinHttp.dll" (ByVal pwszUserAgent As String, ByVal dwAccessType As Int32, ByVal pwszProxyName As String, ByVal pwszProxyBypass As String, ByVal dwFlags As Int32) As Int32

    Public Declare Function WinHttpConnect Lib "WinHttp.dll" (ByVal Hsession As Int32, ByVal SiteAddress As String, ByVal Port_Number As Int32, ByVal dwvalue As Int32) As Int32

 

 

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim hsession As Int32

        Dim hconnect As Int32

        Dim Herror As Int32

        'Dim Exception As String

        Dim URL As String

 

        URL = "www.google.co.uk"

 

 

        hsession = WinHttpOpen("Visual Basic", 0, "", "", 0)

        hconnect = WinHttpConnect(hsession, URL, 80, 0)

 

        Herror = Err.LastDllError

        If Herror = 12005 Then

            MsgBox("Bad Url")

        End If

 

    End Sub

Open in new window

0
Comment
Question by:lonefox_illuminus
  • 5
  • 4
10 Comments
 

Author Comment

by:lonefox_illuminus
ID: 21866513
points changed
0
 
LVL 38

Expert Comment

by:PaulHews
ID: 21978407
Try using

URL = "http://www.google.co.uk"

Some of the low level APIs can be picky about the URL format.  Google doesn't like being screen scraped either, so you might change to a different site for testing.
0
 

Accepted Solution

by:
lonefox_illuminus earned 0 total points
ID: 21980735
I managed to acheive what I was looking for by using Wininet.dll instead, never had any success with winhttp.dll in the end, despite asking on numerous boards, and scouring the web for answers.
MSDN is quite clear in it's definition for the URL to be in the format of my original question, and having tried all combinations including with and without protocol prefix, suffixing / characters etc, all with no success, the most likely reason I can deduce is something to do with the string handling between VB and C++.
This question is closed, my suggestion for anyone else with the same problem.
Use Wininet.dll instead.
0
 
LVL 38

Expert Comment

by:PaulHews
ID: 21982179
Suggest that since there is no solution to the OP problem that the question be deleted instead.
0
Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

 

Author Comment

by:lonefox_illuminus
ID: 21983171
Solution is to not use winhttp.dll when calling from VB, and to use wininet.dll instead. IMO this is worthy information that might have saved me weeks of head scratching, had I found a reference to it online.
0
 
LVL 38

Expert Comment

by:PaulHews
ID: 21983194
As this is VB.NET I'm unclear why you would not want to use the .NET framework tools (not COM objects) instead of an API.
0
 
LVL 38

Expert Comment

by:PaulHews
ID: 21983197
(Note that I only just realized that the question targetted .NET framework...)
0
 

Author Comment

by:lonefox_illuminus
ID: 21983296
As per my question,

"I specifically need to carry out this process using windows native DLL's, not COM objects."

"Please note my final solution will be adapted to run in an uncommon language (Omnis 7),"

I think u realised that now though.

Omnis 7 doesn't support COM objects, after testing in VB to conclude the same error occured, I opted to ask my question targetting VB to increase the likelyhood of a response. There's only a handful of us out here coding in Omnis.
0
 
LVL 38

Expert Comment

by:PaulHews
ID: 21983316
Anyway, no objection to PAQ... I'll get a moderator to close the question with your solution.
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Enums (shorthand for ‘enumerations’) are not often used by programmers but they can be quite valuable when they are.  What are they? An Enum is just a type of variable like a string or an Integer, but in this case one that you create that contains…
Windows Script Host (WSH) has been part of Windows since Windows NT4. Windows Script Host provides architecture for building dynamic scripts that consist of a core object model, scripting hosts, and scripting engines. The key components of Window…
The viewer will learn how to implement Singleton Design Pattern in Java.
Viewers will learn how to properly install Eclipse with the necessary JDK, and will take a look at an introductory Java program. Download Eclipse installation zip file: Extract files from zip file: Download and install JDK 8: Open Eclipse and …

863 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

26 Experts available now in Live!

Get 1:1 Help Now