R
Rajeev
Hi
I am a VB programmer. I need to do a simple thing in VC++.
char strNWUserName[256];
DWORD dBufferLength = 256;
HRESULT hr;
hr = WNetGetUserA("DOMAIN", strNWUserName, &dBufferLength);
The strNWUserName returns .CN=UserName.O=DOMAIN
I just need to extract the UserName from this using VC++. I don't need
the .CN= and O.=DOMAIN.
I am typing the code in VB to do this.
Public Function NWUserName() As String
Dim strNWUserName As String
Dim lngBufferLen As Long
Dim lngResult As Long
Dim lngSecondDotPos As Long
Const NO_ERROR = 0
Const ERROR_NOT_CONNECTED = 2250&
Const ERROR_MORE_DATA = 234&
Const ERROR_NO_NETWORK = 1222&
Const ERROR_EXTENDED_ERROR = 1208&
Const ERROR_NO_NET_OR_BAD_PATH = 1203&
Const cNWResource = "DOMAIN"
'name of a network resource this user
'is connected to (name of the NDS tree, for example)
strNWUserName = String$(255, vbNullChar)
lngBufferLen = Len(strNWUserName)
lngResult = apiWNetGetUser(cNWResource, strNWUserName, lngBufferLen)
If lngResult = NO_ERROR Then
'on Netware the API returns full distinguished name,
'parse it here to get the login name
'eg: .CN=Login.O=Container -Login
If strNWUserName Like ".CN=*.O=*" Then
lngSecondDotPos = InStr(1, strNWUserName, ".O=", vbTextCompare)
NWUserName = Mid$(strNWUserName, 5, lngSecondDotPos - 5)
Else
Err.Raise vbObjectError Or 1001, "NWUserName", _
"Not a Netware login name."
End If
Else
Select Case lngResult
Case ERROR_NOT_CONNECTED
Err.Raise vbObjectError Or 1002, "NWUserName", "'" & _
cNWResource & "' is not a connected network resource."
Case ERROR_MORE_DATA
Err.Raise vbObjectError Or 1003, "NWUserName", _
"More entries are available with subsequent calls."
Case ERROR_NO_NETWORK
Err.Raise vbObjectError Or 1004, "NWUserName", _
"The network is unavailable."
Case ERROR_EXTENDED_ERROR
Err.Raise vbObjectError Or 1005, "NWUserName", _
"A network-specific error has occured."
Case ERROR_NO_NET_OR_BAD_PATH
Err.Raise vbObjectError Or 1006, "NWUserName", _
"No network provider accepted the given network path '" & _
cNWResource & "'."
Case Else
Err.Raise vbObjectError Or 1007, "NWUserName", _
"An unknown error has occured."
End Select
End If
End Function
I am a VB programmer. I need to do a simple thing in VC++.
char strNWUserName[256];
DWORD dBufferLength = 256;
HRESULT hr;
hr = WNetGetUserA("DOMAIN", strNWUserName, &dBufferLength);
The strNWUserName returns .CN=UserName.O=DOMAIN
I just need to extract the UserName from this using VC++. I don't need
the .CN= and O.=DOMAIN.
I am typing the code in VB to do this.
Public Function NWUserName() As String
Dim strNWUserName As String
Dim lngBufferLen As Long
Dim lngResult As Long
Dim lngSecondDotPos As Long
Const NO_ERROR = 0
Const ERROR_NOT_CONNECTED = 2250&
Const ERROR_MORE_DATA = 234&
Const ERROR_NO_NETWORK = 1222&
Const ERROR_EXTENDED_ERROR = 1208&
Const ERROR_NO_NET_OR_BAD_PATH = 1203&
Const cNWResource = "DOMAIN"
'name of a network resource this user
'is connected to (name of the NDS tree, for example)
strNWUserName = String$(255, vbNullChar)
lngBufferLen = Len(strNWUserName)
lngResult = apiWNetGetUser(cNWResource, strNWUserName, lngBufferLen)
If lngResult = NO_ERROR Then
'on Netware the API returns full distinguished name,
'parse it here to get the login name
'eg: .CN=Login.O=Container -Login
If strNWUserName Like ".CN=*.O=*" Then
lngSecondDotPos = InStr(1, strNWUserName, ".O=", vbTextCompare)
NWUserName = Mid$(strNWUserName, 5, lngSecondDotPos - 5)
Else
Err.Raise vbObjectError Or 1001, "NWUserName", _
"Not a Netware login name."
End If
Else
Select Case lngResult
Case ERROR_NOT_CONNECTED
Err.Raise vbObjectError Or 1002, "NWUserName", "'" & _
cNWResource & "' is not a connected network resource."
Case ERROR_MORE_DATA
Err.Raise vbObjectError Or 1003, "NWUserName", _
"More entries are available with subsequent calls."
Case ERROR_NO_NETWORK
Err.Raise vbObjectError Or 1004, "NWUserName", _
"The network is unavailable."
Case ERROR_EXTENDED_ERROR
Err.Raise vbObjectError Or 1005, "NWUserName", _
"A network-specific error has occured."
Case ERROR_NO_NET_OR_BAD_PATH
Err.Raise vbObjectError Or 1006, "NWUserName", _
"No network provider accepted the given network path '" & _
cNWResource & "'."
Case Else
Err.Raise vbObjectError Or 1007, "NWUserName", _
"An unknown error has occured."
End Select
End If
End Function