dポイントプレゼントキャンペーン実施中!

wininet.dllのInternetOpenの同期、非同期について

お世話になります。

VBAでFTPの転送をする際に、InternetOpenを使うのですが同期させたいと思います。
以下サイトなどでいろいろ調べたのですがdwFlagsの指定の仕方について質問です。

1.dwFlags に 0 が指定された場合は、同期すると考えて宜しいでしょうか?

2.dwFlags に、文字列で INTERNET_FLAG_ASYNC を指定すると非同期となるということでよいでしょうか?

3.複数を組合せの時はどのように記述しますか?


以上、宜しくお願い致します。

<参考サイト>
http://www.red.oit-net.jp/tatsuya/vb/WinInet.htm …

●参考サイトより抜粋

Public Declare Function InternetOpen Lib "Wininet.DLL" Alias "InternetOpenA" _
(ByVal lpszAgent As String, ByVal dwAccessType As Long, ByVal lpszProxyName As String, _
ByVal lpszProxyBypass As String, ByVal dwFlags As Long) As Long

dwFlags : オプション。以下のパラメータの組み合わせを指定します。
INTERNET_FLAG_ASYNC サーバーから取得する(非同期)。
INTERNET_FLAG_FROM_CACHE キャッシュから取得する。
INTERNET_FLAG_OFFLINE INTERNET_FLAG_FROM_CACHEと同じ。

A 回答 (1件)

VBは範疇ではない(使ったことない)のですが…



>InternetOpenを使うのですが同期させたいと思います。

この同期について、どういう理解です?
クライアントにあるファイルとサーバにあるファイルが同一になるように。
とかいう意味でしたら、そこは自分でそのように処理する必要がありますが…。

>1.dwFlags に 0 が指定された場合は、同期すると考えて宜しいでしょうか?

指定なし…なのでそうなるでしょう。
# ここで言う同期とは…「結果が得られるまで関数コールから戻らない。」という意味の同期かと…

>2.dwFlags に、文字列で INTERNET_FLAG_ASYNC を指定すると非同期となるということでよいでしょうか?

まず、「文字列」ではありませんのでご注意を。
定数です。
値については…ヘッダファイルを参照するなりして下さい。
# というか、掲示されたページの最初の方で設定していますよね。[標準モジュール]ってところで…
INTERNET_FLAG_ASYNCだと、0x10000000です。(VB的には&H10000000)
# 結果はイベントなどで通知…ということになるかと思われます。
# InternetSetStatusCallback()で設定したコールバックが呼ばれる…っぽい。

>3.複数を組合せの時はどのように記述しますか?

論理和で指定します。
API呼び出しではよくあること…ですが……
    • good
    • 0
この回答へのお礼

参考になりました!ありがとうございました!

お礼日時:2010/10/10 22:08

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!