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

解決


ぽしのと  2003-06-04 21:23:09  No: 107427  IP: [192.*.*.*]

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 00:16:32  No: 107428  IP: [192.*.*.*]

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

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

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

編集 削除
ぽしのと  2003-06-06 22:19:17  No: 107429  IP: [192.*.*.*]

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

編集 削除