タイトル : UNC取得 投稿日 : 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 |