помогите ламеру, plz
нужно открыть папку для доступа из сети. В инете нашел код.Короче, реализовано это через NetShareAdd. Папку открывает, в сетке ее видно, но войти в нее нельзя. Access denied, have not permission... и всякая другая фигня... Система — WinXP. Может фича есть какая, подскажите плиззз. Вот краткое содержание:
.....
typedef NET_API_STATUS (*SHAREADDNT)(LPWSTR servername, DWORD level, LPBYTE buf, LPDWORD parm_err);
SHAREADDNT pShareAdd;
SHARE_INFO_502 si;
wchar_t wsName[MAX_PATH], wsNetName[MAX_PATH], wsRemark, wsPasswd;
if(!MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, NetName, -1, wsNetName, MAX_PATH)) {...}
if(!MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, Name, -1, wsName, MAX_PATH)) {...}
wsRemark = (WCHAR)0;
wsPasswd = (WCHAR)0;
nLevel = 502;
si.shi502_netname = /*(LPTSTR)*/wsNetName;
si.shi502_type = STYPE_DISKTREE;
si.shi502_remark = /*(LPTSTR)*/&wsRemark;
si.shi502_permissions = ACCESS_ALL;
si.shi502_max_uses = -1;
si.shi502_current_uses = 0;
si.shi502_path = /*(LPTSTR)*/wsName;
si.shi502_passwd = /*(LPTSTR)*/&wsPasswd;
si.shi502_reserved = 0;
si.shi502_security_descriptor = NULL;
hIn = LoadLibrary("NETAPI32.DLL");
if(hIn == NULL)
{
....
}
hShareAdd = GetModuleHandle("NETAPI32.DLL");
if(hShareAdd)
{
pShareAdd = (SHAREADDNT)GetProcAddress((HMODULE)hShareAdd, "NetShareAdd");
if(!pShareAdd)
{
.....
}
} else {...}
nStatus = pShareAdd(NULL, nLevel, (LPBYTE)&si, NULL);
if (nStatus!=NERR_Success)
{...}
......
18.04.03 08:45: Перенесено из 'C/C++'