InternetOpenA 函式 (wininet.h)

初始化應用程式的 WinINet 函式使用。

語法

HINTERNET InternetOpenA(
  [in] LPCSTR lpszAgent,
  [in] DWORD  dwAccessType,
  [in] LPCSTR lpszProxy,
  [in] LPCSTR lpszProxyBypass,
  [in] DWORD  dwFlags
);

參數

[in] lpszAgent

Null 終止字串的指標,指定呼叫 WinINet 函式的應用程式或實體名稱。 此名稱會當做 HTTP 通訊協定中的使用者代理程式使用。

[in] dwAccessType

需要存取的類型。 此參數可以是下列其中一個值。

意義
INTERNET_OPEN_TYPE_DIRECT
在本機解析所有主機名。
INTERNET_OPEN_TYPE_PRECONFIG
從登錄擷取 Proxy 或直接組態。
INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY
從登錄擷取 Proxy 或直接組態,並防止使用啟動 Microsoft JScript 或因特網安裝程式 (INS) 檔案。
INTERNET_OPEN_TYPE_PROXY
除非提供 Proxy 略過清單,且要解析的名稱會略過 Proxy,否則會將要求傳遞至 Proxy。 在此情況下,函式會使用 INTERNET_OPEN_TYPE_DIRECT

[in] lpszProxy

Null 終止字串的指標,指定 proxy 伺服器的名稱, () 指定 proxy 存取時所要使用的 proxy 伺服器名稱,方法是將 dwAccessType 設定為 INTERNET_OPEN_TYPE_PROXY。 請勿使用空字串,因為 InternetOpen 會使用它作為 Proxy 名稱。 WinINet 函式只會辨識 CERN 類型 Proxy (HTTP) ,而 TIS FTP 閘道只會 (FTP) 。 如果已安裝 Microsoft Internet Explorer,這些函式也支援 SOCKS Proxy。 FTP 要求可以透過 CERN 類型 Proxy 進行,方法是將其變更為 HTTP 要求或使用 InternetOpenUrl。 如果 dwAccessType 未設定為 INTERNET_OPEN_TYPE_PROXY,則會忽略此參數,而且應該是 NULL。 如需列出 Proxy 伺服器的詳細資訊,請參閱啟用因特網功能的列出 Proxy 伺服器一節。

[in] lpszProxyBypass

Null 終止字串的指標,指定選擇性的主機名或IP位址清單,或兩者,當 dwAccessType 設定為 INTERNET_OPEN_TYPE_PROXY 時,不應透過 Proxy 路由傳送。 清單可以包含通配符。 請勿使用空字串,因為 InternetOpen 會使用它作為 Proxy 略過清單。 如果此參數指定 「<local>」 宏,此函式會略過任何不包含句點之主機名的 Proxy。

根據預設,WinINet 會略過使用主機名 “localhost”、“loopback”、“127.0.0.1” 或 “[::1]” 的要求 Proxy。 此行為存在,因為遠端 Proxy 伺服器通常不會正確解析這些位址。Internet Explorer 9: 您可以使用 「<-loopback>」 宏,從 Proxy 略過清單中移除本機計算機。

如果 dwAccessType 未設定為 INTERNET_OPEN_TYPE_PROXY,則會忽略此參數,而且應該是 NULL

[in] dwFlags

選項。 此參數可以是下列值的組合。

意義
INTERNET_FLAG_ASYNC
只對從這個函式傳回之句柄遞減的句柄發出異步要求。
INTERNET_FLAG_FROM_CACHE
不會提出網路要求。 所有實體都會從快取傳回。 如果要求的專案不在快取中,則會傳回適當的錯誤,例如ERROR_FILE_NOT_FOUND。
INTERNET_FLAG_OFFLINE
INTERNET_FLAG_FROM_CACHE相同。 不會提出網路要求。 所有實體都會從快取傳回。 如果要求的專案不在快取中,則會傳回適當的錯誤,例如ERROR_FILE_NOT_FOUND。

傳回值

傳回應用程式傳遞至後續 WinINet 函式的有效句柄。 如果 InternetOpen 失敗,則會傳回 NULL。 若要擷取特定的錯誤訊息,請呼叫 GetLastError

備註

InternetOpen 是應用程式所呼叫的第一個 WinINet 函式。 它會告訴因特網 DLL 初始化內部數據結構,並準備未來從應用程式呼叫。 當應用程式使用因特網函式完成時,它應該呼叫 InternetCloseHandle 以釋放句柄和任何相關聯的資源。

應用程式可以對 InternetOpen 進行任意數目的呼叫,但單一呼叫通常就已足夠。 應用程式可能需要為每個 InternetOpen 實例定義不同的行為,例如為每個實例設定的不同 Proxy 伺服器。

呼叫應用程式使用 InternetOpen 所傳回的 HINTERNET 句柄完成之後,必須使用 InternetCloseHandle 函式來關閉它。

就像 WinINet API 所有其他層面一樣,您無法從 DllMain 或全域物件的建構函式和解構函式安全地呼叫此函式。

注意 WinINet 不支援伺服器實作。 此外,不應該從服務使用它。 對於伺服器實作或服務,請使用 Microsoft Windows HTTP Services (WinHTTP)
 

注意

wininet.h 標頭會將 InternetOpen 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例

規格需求

需求
最低支援的用戶端 Windows 2000 Professional [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限桌面應用程式]
目標平台 Windows
標頭 wininet.h
程式庫 Wininet.lib
Dll Wininet.dll

另請參閱

啟用因特網功能

WinINet 函式