APIのフォルダ参照とネットワーク参照を統合するには?

解決


ぽしのと  2003-06-05 06:23:09  No: 107427

APIを使って、フォルダの参照とネットワークの参照を行いたいのですが
初心者なもので、宣言の括弧の編集が分かりません。
下記の宣言文を統一するには、どうしたらいいのでしょうか?
Anyの意味も分からない次第です。どうか、助けて下さい。
お願いします。

'フォルダ参照
Declare Function SHBrowseForFolder Lib "shell32.dll" _
   (lpbi As Any) As Long

Declare Function SHGetPathFromIDList Lib "shell32.dll" _
   (lpbi As Any, ByVal pszPath As String) As Long

'ネットワーク参照
Declare Function SHBrowseForFolder Lib "shell32.dll" _
   (lpbi As BrowseInfo) As Long

Declare Function SHGetPathFromIDList Lib "shell32.dll" _
   (ByVal pidList As Long, ByVal lpBuffer As String) As Long


Say  2003-06-06 09:16:32  No: 107428

>Anyの意味も分からない次第です。
ヘルプに説明が載ってますが、どの部分がわからないのでしょう?

>下記の宣言文を統一するには、どうしたらいいのでしょうか?
どうやってこれらの宣言文を作ったか知りませんが、
統一するも何も同じ宣言です。
どう宣言するかは、引数の用意のしかた次第です。
つまり型チェックされて都合が悪いかどうかによります。

原理的には、引数をきちんと用意しておきさえすれば、
API呼び出しの引数をすべてAnyで宣言することが可能です。
ただ、意味不明の不具合の原因になりますから、
可能な限りAny宣言は避けたいところですが・・・。


ぽしのと  2003-06-07 07:19:17  No: 107429

ほんとですね、一緒だ。^o^;
要は、どちかの宣言に統一して、pIDLRootの引数が
フォルダ参照の場合は、「CSIDL_DESKTOP」で
ネットワーク参照の場合は、「CSIDL_NETWORK」で出来ました。
でも、きっとSayさんのお言葉がなければ、気づいていなかったので
助言、ありがとうございました。これからも宜しくお願い致します。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加