タイトル | : UNC取得 |
記事No | : 13809 |
投稿日 | : 2009/07/04(Sat) 15:05 |
投稿者 | : ISHIDA |
WNetGetUniversalName() について質問します。 この関数を使ってローカルPCのUNCを取得しようと試みましたが、どう頑張ってもエラーしか戻ってきません。遂に、関数自体に障害があるのではないかと思い始めました。 どなたか追試験をしてみては頂けないでしょうか? いくつか試みた代表的コードを以下に記します。 関数戻り値は常に 2250 です。
Private Declare Function WNetGetUniversalName Lib "mpr" Alias "WNetGetUniversalNameA" _ (ByVal lpLocalPath As String, ByVal dwInfoLevel As Long, lpBuffer As Any, lpBufferSize As Long) As Long
Private Const UNIVERSAL_NAME_INFO_LEVEL = 1 Private Const REMOTE_NAME_INFO_LEVEL = 2 Private Const UNIVERSAL_NAME_BUFFER_SIZE = 1000 Private Const NO_ERROR = 0
Private Type UNIVERSAL_NAME_INFO lpUniversalName As Long buf(UNIVERSAL_NAME_BUFFER_SIZE - 4) As Byte End Type
Private Sub cmdGetUniversal_Click() Dim BufSize As Long Dim uni As UNIVERSAL_NAME_INFO Dim ss As String ss = "C:\ABC\DEF" BufSize = UNIVERSAL_NAME_BUFFER_SIZE If WNetGetUniversalName(ss, UNIVERSAL_NAME_INFO_LEVEL, uni, BufSize) = NO_ERROR Then StartLoc = uni.lpUniversalName - VarPtr(uni) - 3 txtUniversal.Text = Mid$(StrConv(uni.buf, vbUnicode), StartLoc) Else MsgBox "Error: cannot find the universal path of " & ss, vbOKOnly Or vbExclamation, "" End If End Sub
|