TeamKiller
May 17th, 2001, 09:00 AM
Is there an api that allows me to share a resource on my computer such as my hard drive
TeamKiller
May 17th, 2001, 05:24 PM
Could you pls provide some sample code for this api thanks
jim mcnamara
May 17th, 2001, 11:40 PM
As I recall, MSDN (http://www.msdn.microsoft.com) has a good tutorial on NetShareAdd. I believe NetShareAdd is in NETAPI32.dll
(correction requested, I'm away from any resource to verify this).
Hope you can read c source....:rolleyes:
JoshT
May 18th, 2001, 07:13 AM
This will work on NT/2000, but it won't run on 9x.
'THIS CODE IS FOR NT/2000
'5-3-2001 by JoshT
Option Explicit
Option Base 0
Private Const STYPE_DISKTREE As Long = 0 'disk drive
Private Const STYPE_PRINTQ As Long = 1 'printer
Private Const STYPE_DEVICE As Long = 2
Private Const STYPE_IPC As Long = 3
Private Type SHARE_INFO_2
shi2_netname As String 'LPWSTR
shi2_type As Long 'DWORD
shi2_remark As String 'LPWSTR
shi2_permissions As Long 'DWORD
shi2_max_uses As Long 'DWORD
shi2_current_uses As Long 'DWORD
shi2_path As String 'LPWSTR
shi2_passwd As String 'LPWSTR
End Type
'NetShareAdd returns 0 if no error
'
'lpwstrServerName As Any, --the computer to create the share on,
' NULL for local computer,
' otherwise must begin with "\\"
'ByVal dwordLevel As Long, -- specifies the type struct that contains the data
' 2 for SHARE_INFO_2 Struct
' 502 for SHARE_INFO_502 Struct
'ByVal lpbyteBuf As Any, -- pointer to the struct who type was specified above
'lpdwordParmErr As Long, -- if an error in the struct, the number of the struct's parameter
' that caused the error (0 is no error)
Private Declare Function NetShareAdd Lib "netapi32.dll" _
(lpwstrServerName As Byte, _
ByVal dwordLevel As Long, _
ByVal lpbyteBuf As Long, _
lpdwordParmErr As Long) As Long
Private Sub TestIt()
Dim si2 As SHARE_INFO_2
Dim retval As Long
Dim parmerr As Long
Dim compname() As Byte
parmerr = 0
'compname = vbNullString
compname() = "\\COMPNAME" & vbNullChar
si2.shi2_netname = "Test2C" & vbNullChar 'the name of the share
si2.shi2_type = STYPE_DISKTREE 'the share is on the disk
si2.shi2_remark = "Testing Out NetShareAdd VB API" & vbNullChar 'the comment
si2.shi2_permissions = 0 'this should be ignored
si2.shi2_max_uses = -1 'unlimited connections
si2.shi2_current_uses = 0 'I don't think this is applicable
si2.shi2_path = "C:\TEMP" & vbNullChar 'the path to the share
si2.shi2_passwd = vbNullString 'NULL, the password 'this should be ignored
retval = NetShareAdd(compname(0), 2, VarPtr(si2), parmerr)
End Sub
Private Sub Form_Load()
TestIt
End Sub